我希望我的视图模型有状态绑定不在主视图中。
在下面的代码中,我在主视图中将视图模型的 @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)
})
)
}
}