SwiftUI, привязка переменной другого объекта не работает - PullRequest
1 голос
/ 26 января 2020

Я хочу, чтобы моя модель представления имела привязку состояния, а не основного вида.

В приведенном ниже коде я связал переменную @GestureState модели представления с DragGesture в моем главном представлении. Но проблема в том, что без какой-либо ошибки компиляции она вообще не обновляет мою переменную @GestureState. Если я определю переменную @GestureState в моем главном окне, это сработает. Есть идеи?

class ViewModel {
    @GestureState var dragOffset = CGSize.zero
}

struct ExampleView: View {
    var viewModel = ViewModel()

    var body: some View {
        Image(systemName: "star.circle.fill")
            .font(.system(size: 100))
            .offset(x: viewModel.dragOffset.width, y: viewModel.dragOffset.height)
            .animation(.easeInOut)
            .foregroundColor(.green)
            .gesture(
                DragGesture()
                    .updating(viewModel.$dragOffset, body: { (value, state, transaction) in
                        print(state)
                        state = value.translation
                        print(state)
                    })
            )
    }
}
...