,可以通过使用DragGesture
手势和@GestureState
属性来实现。
首先,我们需要创建一个@GestureState
属性来保存移动视图的坐标信息。这个属性会自动更新,并且可以在视图中使用。
@GestureState private var dragOffset = CGSize.zero
接下来,我们可以在视图中使用DragGesture
手势,并将其绑定到移动视图上。在手势的回调中,我们可以更新dragOffset
属性来保存移动视图的坐标信息。
var body: some View {
Rectangle()
.frame(width: 100, height: 100)
.gesture(
DragGesture()
.updating($dragOffset, body: { (value, state, _) in
state = value.translation
})
)
}
现在,我们可以在视图中使用dragOffset
属性来获取移动视图的坐标信息。可以通过在视图中使用offset
修饰符来应用这个属性。
var body: some View {
Rectangle()
.frame(width: 100, height: 100)
.gesture(
DragGesture()
.updating($dragOffset, body: { (value, state, _) in
state = value.translation
})
)
.offset(x: dragOffset.width, y: dragOffset.height)
}
这样,移动视图的坐标将会实时更新,并且可以在视图中使用。
在SwiftUI中实时获取移动视图的坐标可以用于实现拖拽操作、手势识别、动画效果等场景。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云