Я хочу, чтобы моя модель представления имела привязку состояния, а не основного вида.
В приведенном ниже коде я связал переменную @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)
})
)
}
}