Связывание SwiftUI переменной другого объекта не работает

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

В приведенном ниже коде я привязал переменную @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)
                    })
            )
    }
}

0 ответов

Другие вопросы по тегам