你好,我在 iOS 自定义 View 中观察到一些奇怪的东西,我在自定义 View 旁边有一个按钮,我正在寻找文档或你的答案来解释为什么我有这个观察
我有一个自定义 View (UIView 的子类),它包含一个简单的按钮,我通过 addTarget:Action 和 UITouchUpInside 绑定(bind)按钮触摸事件,我只是将它的选择器绑定(bind)到一个简单的方法,即 NSLog 一条消息
如果您显示自定义 View 并点击按钮,您可以在控制台中看到消息,一切都按预期进行。
但是,如果您将 UIGestureReognizer 添加到自定义 View 并运行它,当您单击按钮时,它不再打印消息,为什么??? 我做了更多的深入调查,并通过查看自定义 View 中的 hittest 方法( View 包含按钮)(我重写了它,但我什么也没做,我只是再次调用 super),hittest 正在返回正确的 View ,即当我单击按钮时,自定义 View 的 hittest 方法返回 UIButton
我不明白这里的事件链,有人可以指出解释这个的文档吗?
在我看来,当你将 regonizer 添加到按钮的容器 View 时,出于某种原因,按钮不知道如何处理事件,所以它要求它的 super View (在这种情况下为自定义 View )来处理它, 但为什么??我已经通过 UITouchUPInside 将事件处理程序绑定(bind)到按钮
请帮助我理解这一点
最佳答案
设置识别器的 cancelsTouchesInView属性设置为 NO
。
关于ios - 使用 UIGestureRecognizer 传递的奇怪的 ios 触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12295576/