5

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

我的 touchesMoved 问题不是由手势识别器取消视图中的触摸引起的吗?我还涉及到滚动视图。这可能是罪魁祸首吗?

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

谢谢您的帮助!

4

2 回答 2

14

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

于 2012-04-26T02:51:41.413 回答
2

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

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

于 2012-04-26T03:59:42.480 回答