SwiftUI наблюдает за изменениями из подпредставленияIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 SwiftUI наблюдает за изменениями из подпредставления

Сообщение Anonymous »

У меня есть структура, которая является частью моей модели представления. Структура по существу хранит все свойства, необходимые для подпредставления и обратных вызовов закрытия.

Код: Выделить всё

struct ColorCorrectionsViewModel {

var sliderVal:Float
var sliderMinVal:Float
var sliderMaxVal:Float
var chosenControl:ColorControl

var userUpdatingColorValue:Bool

var onReset:() -> Void
var onValueChange:(_ newValue:Float) -> Void
var onColorMenuChange(_ newControl:ColorControl) -> Void
}

public enum ColorControl {
case none, brightness, contrast, highlights, shadows
}
И я настраиваю структуру в суперпредставлении перед добавлением подпредставления следующим образом:

Код: Выделить всё

  var editButton:some View {
Button {
editorVM.colorControlsVM.chosenControl = .contrast
editorVM.colorControlsVM.sliderVal = 0.8
editorVM.colorControlsVM.onReset = {
NSLog("Reset")
}
editorVM.colorControlsVM.onValueChange = { newValue in
NSLog("New value \(newValue)")
}
showColorCorrectionMenu.toggle()

} label: {
....
}
Это работает, но не кажется более императивным кодом (чем способ SwiftUI), где я перехватываю изменения значений в ползунке и сегментированном элементе управления и передаю значения в суперпредставление. Я ориентируюсь на iOS 17 или более позднюю версию, если это поможет, поскольку я использую макрос @Observable.
Каков альтернативный способ избежать такого большого количества обратных вызовов закрытия, когда изменения в значениях автоматически наблюдаются родителем ( что кажется чистым способом SwiftUI)?

Подробнее здесь: https://stackoverflow.com/questions/786 ... om-subview
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • SwiftUI наблюдает за изменениями в вычисляемом свойстве
    Anonymous » » в форуме IOS
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • SwiftUI не наблюдает за изменениями SwiftData
    Anonymous » » в форуме IOS
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • SwiftUI не наблюдает за изменениями SwiftData
    Anonymous » » в форуме IOS
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как мне смоделировать свою логику при разделении представления SwiftUI на отдельные подпредставления?
    Гость » » в форуме IOS
    0 Ответы
    112 Просмотры
    Последнее сообщение Гость
  • Как мне смоделировать свою логику при разделении представления SwiftUI на отдельные подпредставления?
    Гость » » в форуме IOS
    0 Ответы
    58 Просмотры
    Последнее сообщение Гость

Вернуться в «IOS»