0

我有一个这样的 UILongPressGestureRecognizer 设置:

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
                                          初始化目标:自我
                                          动作:@selector(handleLongPress:)];
longPress.numberOfTouchesRequired = 3;
longPress.allowableMovement = 30;

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

4

1 回答 1

0

allowableMovement 是最大移动量,而不是最小移动量。 苹果文档

您最好的选择是在检测到任何移动时调用的方法中进行检查,在此检查中,您可以在移动小于一定距离时丢弃任何调用。

UILongPressGestureRecognizer 扩展了 UIGestureRecognizer ,它可以在每次调用处理程序方法时返回触摸的位置,查看UIGestureRecognizer 类参考

于 2013-01-01T23:21:15.267 回答