如何检测EdgePan Gesture SwiftUI

How to detect EdgePan Gesture SwiftUI

我正在尝试从 SwiftUI 的左侧识别 EdgePan。我知道有一些手势,但无法将它们应用到整个屏幕。 (尝试使用 DragGesture)。 是否可以在 SwiftUI 中实现 EdgePan? 或者我如何使用 DragGesture 来做同样的事情?

是的,这可以用 DragGesture

DragGesture有一个startLocation属性,也就是一个CGPoint。由此,您可以检测手势从哪里开始,并使用它可以确定它是否从边缘开始。

拿你现有的DragGesture,在.onChanged闭包中,传入gesture,然后用gesture.startLocation找到开始位置。由于您想要检测边缘,因此您需要 gesture.startLocation.

x 属性

看起来像这样:

DragGesture()
    .onChanged({gesture in
        if gesture.startLocation.x < CGFloat(100.0){
            print("edge pan")
        }
     }
)