我有一个像这样的UILongPressGestureRecognizer设置:
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; longPress.numberOfTouchesRequired = 3; longPress.allowableMovement = 30;
在我的handleLongPress选择器中,我正在检查3个状态,UIGestureRecognizerStateBegan,UIGestureRecognizerStateChanged和UIGestureRecognizerStateEnded。 UIGestureRecognizerStateChanged是否与allowableMovement属性有关?我想只在手指移动超过30个像素时触发该状态,但就像现在一样,它会在最轻微的移动时触发。
答案 0 :(得分:0)
allowableMovement是最大移动,而不是最小移动。 Apple Documentation
最好的办法是检查在检测到任何移动时调用的方法,在此检查中,当移动距离小于一定距离时,您可以放弃任何呼叫。
UILongPressGestureRecognizer扩展了UIGestureRecognizer,每次调用处理程序方法时都可以返回触摸位置,请查看UIGestureRecognizer class reference