我正在尝试在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")
}
}
)
.onEnded
。 - nOk