iPhone UIView touchesMoved:withEvent:没有使用手势识别器调用UIView

时间:2012-04-26 01:30:20

标签: iphone objective-c ios uiview uiresponder

我添加了一个依赖于TouchesMoved:事件的UIView来拖动触摸。在同一个视图控制器中已存在长按,点击,旋转和捏合手势识别器。我遇到了一个问题,即视图会收到touchesBegan:touchesEnded:个事件,但没有触及。

我的touchesMoved问题是否被手势识别器取消,导致视图中的触摸被取消?我还有卷轴视图。这可能是罪魁祸首吗?

如果我无法使用touchesMoved,这是实现“触摸和移动”功能的最近手势。是点击还是平移手势识别器?

感谢您的帮助!

2 个答案:

答案 0 :(得分:14)

默认情况下,手势会取消活动时链接到的对象中的触摸。您可以通过将cancelsTouchesInView属性设置为NO来停止此行为。

答案 1 :(得分:2)

将原始触摸处理与手势识别器混合可能会产生奇怪的行为,至少我无法使其正常工作,它有点不稳定。在您的情况下,您可能只想在视图中添加拖动手势识别器(UIPanGestureRecognizer)来处理拖动。

您可以通过查看gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:UIGestureRecognizerDelegate来控制手势识别器在哪种情况下触发的机制。