我添加了一个依赖于TouchesMoved:事件的UIView
来拖动触摸。在同一个视图控制器中已存在长按,点击,旋转和捏合手势识别器。我遇到了一个问题,即视图会收到touchesBegan:
和touchesEnded:
个事件,但没有触及。
我的touchesMoved问题是否被手势识别器取消,导致视图中的触摸被取消?我还有卷轴视图。这可能是罪魁祸首吗?
如果我无法使用touchesMoved,这是实现“触摸和移动”功能的最近手势。是点击还是平移手势识别器?
感谢您的帮助!
答案 0 :(得分:14)
默认情况下,手势会取消活动时链接到的对象中的触摸。您可以通过将cancelsTouchesInView属性设置为NO
来停止此行为。
答案 1 :(得分:2)
将原始触摸处理与手势识别器混合可能会产生奇怪的行为,至少我无法使其正常工作,它有点不稳定。在您的情况下,您可能只想在视图中添加拖动手势识别器(UIPanGestureRecognizer)来处理拖动。
您可以通过查看gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:UIGestureRecognizerDelegate来控制手势识别器在哪种情况下触发的机制。