当我拖动视图并让它进入一个新位置时。每次调用都会调用。
当我拖动视图一段时间并让它进入它开始的相同位置时,没有任何东西被调用,我希望.Ended或默认被调用但是没有发生。
为什么会这样?当用户一致地放开视图时,我该如何学习?
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")
}
}
答案 0 :(得分:0)
您几乎应该总是使用UIGestureRecognizerState.Ended || UIGestureRecognizerState.Cancelled作为两个中的一个肯定会在手势结束时调用。这样,您还可以处理用户拖过屏幕的情况。
答案 1 :(得分:0)
在我的情况下,仅当我在模拟器中使用两指捏或旋转手势并使用键盘上的 option 键时,这种情况才会发生。
通常,手势结束后(不移动鼠标)再按一次 option 键似乎可以解决问题,并且达到.ended
状态。
我没有在实际设备上遇到此问题。