我与UIGestureRecognizer
atm合作创建了一些类似地图的程序。
我的工作要求我分别听长按手势和平移手势,这样每个人都可以自己完成任务。 但在一个案例中,我需要先听长按才知道选择了哪个对象。在那之后,当我开始移动我的手指(不抬起它)时,那个物体也会移动。这有点像在谷歌地图中拖动标记。但是因为我的长按识别器已经被触发,所以平移手势识别器在我再次在屏幕上显示之前没有起火。
我试过像
这样的东西recognizer.enabled = NO;
recignizer.enabled = YES;
但它根本没有帮助。
所以我想知道无论如何在识别(UIGestureRecognizerStateBegan
)之后取消长按,所以当我开始移动时,平移手势识别器会立即触发。或者我必须使用UIResponder使它工作?
感谢您的建议。
答案 0 :(得分:1)
您可以在长按后实际使用UILongPressGestureRecognizer
来检测平移手势。唯一需要注意的是,由于UILongPressGestureRecognizer
是UIGestureRecognizer
的子类,因此-translationInView:
中没有UIPanGestureRecognizer
这么方便。
你可以通过跟踪长按后触摸移动的位置来自行完成这些计算,因为它会继续触发绑定到手势识别器的动作。
看看this question,用长按手势计算翻译可能会有所帮助。