如何在iOS中将触摸传递给手势识别器?

Posted

技术标签:

【中文标题】如何在iOS中将触摸传递给手势识别器?【英文标题】:How to pass touch to gesture recognizer in iOS? 【发布时间】:2013-01-23 08:27:55 【问题描述】:

我有一个 UIView ViewA,我们将它添加到一个 scrollView ViewB。 ViewA 有其他子视图(其中之一是 ViewC)。现在,我们在 ViewA 上有了触摸方法(开始、结束等)。 ViewC 有一个点击识别器。我如何通过触摸?

现在,ViewA 中的 touches 方法正在被击中。手势识别器不工作。

任何人都可以提出任何建议吗?

谢谢。 阿山

【问题讨论】:

【参考方案1】:

我会建议您使用适合您想要做的事情的 UIGestureRecognizer,而不是直接实现触摸方法。根据 Apple 文档,您不应该再使用触摸方法。

如果您想将手势从一个视图传递到另一个视图,为什么不在第二个视图的 .h 文件中声明一个方法,并在触发手势时从第一个视图调用它?

如果 viewB 是 viewA 的子视图会更简单,因为您将在 viewA 中引用 vewB。

希望对您有所帮助!

【讨论】:

【参考方案2】:

您可以使一个 UIGestureRecognizer (A) 依赖于另一个 (B) - 这样一来,如果第二个失败,一个就无法工作。

在您的情况下,您可以将 UIGestureRecognizer (A) 添加到顶视图,并将另一个 (B) 添加到其下方的视图,这需要识别其他一些用户交互。底部视图中的一个 (B) 无法在另一个 (A) 出现故障的情况下开始工作。

要了解更多可能适合您需求的 UIGestureRecognizer 行为,您可以阅读有关 requireGestureRecognizerToFail here 的信息,并熟悉一下超级有用的类。

【讨论】:

以上是关于如何在iOS中将触摸传递给手势识别器?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 手势识别

将现有和活动的手势识别器传递给模态视图控制器

iOS开发系列--触摸事件手势识别摇晃事件耳机线控

iOS开发系列--触摸事件手势识别摇晃事件耳机线控

iOS开发系列--触摸事件手势识别摇晃事件耳机线控

iOS开发系列--触摸事件手势识别摇晃事件耳机线控