在 SwiftUI 中使用 Drag Gesture() 时如何知道是向下还是向上拖动?
How to know if draged down or up while using DragGesture() in SwiftUI?
我在我的 SwiftUI 代码中使用 DragGesture() ..它工作正常..但是对于一个逻辑我想知道它是向下拖动还是向上拖动,有什么方法可以检测到这个吗?
let drag = DragGesture()
.onChanged { value in
//some logic
}
.onEnded { value in
// some logic
expand.toggle()
}
一种可能的方法是使用额外的状态 属性 来存储
value.location.y
坐标和更新依赖状态比较
以前存储和当前收到拖 value
:
测试 Xcode 13.3 / iOS 15.4
这是主要部分:
.gesture(DragGesture()
.onChanged { value in
let newValue = value.location.y // fetch prev !!
if let prev = self.current {
self.isUp = prev > newValue // << here !!
}
self.current = newValue // store curr !!
self.offsetY = value.translation.height
}
我在我的 SwiftUI 代码中使用 DragGesture() ..它工作正常..但是对于一个逻辑我想知道它是向下拖动还是向上拖动,有什么方法可以检测到这个吗?
let drag = DragGesture()
.onChanged { value in
//some logic
}
.onEnded { value in
// some logic
expand.toggle()
}
一种可能的方法是使用额外的状态 属性 来存储
value.location.y
坐标和更新依赖状态比较
以前存储和当前收到拖 value
:
测试 Xcode 13.3 / iOS 15.4
这是主要部分:
.gesture(DragGesture()
.onChanged { value in
let newValue = value.location.y // fetch prev !!
if let prev = self.current {
self.isUp = prev > newValue // << here !!
}
self.current = newValue // store curr !!
self.offsetY = value.translation.height
}