当我拖动视图并将其放到新位置时,每次都会调用Ended。
当我拖动视图一段时间并将其放到开始时所在的位置时,没有任何调用,我希望调用.Ended或default,但不会发生。
为什么会这样?当用户一致放开视图时,我该如何学习?
var gestureRecognizer = UIPanGestureRecognizer(target: self, action: Selector("dragged:"))
gestureRecognizer.delegate = self
view.addGestureRecognizer(gestureRecognizer)
func dragged(gesture: UIPanGestureRecognizer) {
switch gesture.state {
case UIGestureRecognizerState.Began:
print("calls this everytime touch began")
case UIGestureRecognizerState.Ended:
print("doesn't call this everytime")
default:
print("never calls this")
}
}
最佳答案
您几乎应该始终使用UIGestureRecognizerState。 UIGestureRecognizerState.Cancelled作为两个手势之一肯定会在手势结束时调用。这样,您还可以处理用户拖过屏幕的情况。
关于ios - 在某些情况下不调用UIGestureRecognizerState.Ended,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33056319/