UILongPressGestureRecognizer检测手指是否移动了某个半径

时间:2013-01-01 23:11:24

标签: objective-c ios uigesturerecognizer

我有一个像这样的UILongPressGestureRecognizer设置:

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
                                          initWithTarget:self
                                          action:@selector(handleLongPress:)];
longPress.numberOfTouchesRequired = 3;
longPress.allowableMovement = 30;

在我的handleLongPress选择器中,我正在检查3个状态,UIGestureRecognizerStateBegan,UIGestureRecognizerStateChanged和UIGestureRecognizerStateEnded。 UIGestureRecognizerStateChanged是否与allowableMovement属性有关?我想只在手指移动超过30个像素时触发该状态,但就像现在一样,它会在最轻微的移动时触发。

1 个答案:

答案 0 :(得分:0)

allowableMovement是最大移动,而不是最小移动。 Apple Documentation

最好的办法是检查在检测到任何移动时调用的方法,在此检查中,当移动距离小于一定距离时,您可以放弃任何呼叫。

UILongPressGestureRecognizer扩展了UIGestureRecognizer,每次调用处理程序方法时都可以返回触摸位置,请查看UIGestureRecognizer class reference