UILongPressGestureRecognizer 检测手指是不是移动了一定的半径
Posted
技术标签:
【中文标题】UILongPressGestureRecognizer 检测手指是不是移动了一定的半径【英文标题】:UILongPressGestureRecognizer detect if fingers moved certain radiusUILongPressGestureRecognizer 检测手指是否移动了一定的半径 【发布时间】:2013-01-01 23:11:23 【问题描述】:我有一个这样的 UILongPressGestureRecognizer 设置:
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] 初始化目标:自我 动作:@selector(handleLongPress:)]; longPress.numberOfTouchesRequired = 3; longPress.allowableMovement = 30;
在我的 handleLongPress 选择器中,我正在检查 3 个状态,即 UIGestureRecognizerStateBegan、UIGestureRecognizerStateChanged 和 UIGestureRecognizerStateEnded。 UIGestureRecognizerStateChanged 是否以任何方式与 allowableMovement 属性相关?我只想在手指移动超过 30 像素时触发该状态,但就像现在一样,它会通过最轻微的移动触发。
【问题讨论】:
【参考方案1】:allowableMovement 是最大移动量,而不是最小移动量。 Apple Documentation
您最好的选择是在检测到任何移动时调用的方法中进行检查,在此检查中,您可以在移动小于一定距离时丢弃任何调用。
UILongPressGestureRecognizer 扩展了 UIGestureRecognizer,它可以在每次调用处理程序方法时返回触摸的位置,查看UIGestureRecognizer class reference
【讨论】:
如何检查移动是否小于一定距离? @thisiscrazy4 查看 UIGestureRecognizer 它允许您检索触摸位置。以上是关于UILongPressGestureRecognizer 检测手指是不是移动了一定的半径的主要内容,如果未能解决你的问题,请参考以下文章