【发布时间】:2012-09-06 08:05:32
【问题描述】:
您好,我在 iOS 自定义视图中观察到一些奇怪的东西,我在自定义视图中有一个按钮,我正在寻找文档或您的答案来解释为什么我有这个观察结果
我有一个自定义视图(UIView 的子类),它包含一个简单的按钮,我通过 addTarget:Action 将按钮触摸事件与 UITouchUpInside 绑定,我只是将它选择器绑定到一个简单的方法,即 NSLog 一条消息
如果您显示自定义视图并点击按钮,您可以在控制台中看到消息,一切正常。
但是,如果您将 UIGestureReognizer 添加到自定义视图并运行它,当您单击按钮时,它不再打印消息,为什么? 我做了更深入的调查,并通过查看自定义视图中的 hittest 方法(视图包含按钮)(我覆盖它,但我没有做任何事情,我只是再次调用 super),hittest 正在返回正确的视图,即当我单击按钮时,自定义视图的 hittest 方法正在返回 UIButton
我不明白这里的事件链,有人可以指出解释这一点的文档吗?
在我看来,当您将 regonizer 添加到按钮的容器视图时,由于某种原因,按钮不知道如何处理该事件,因此它要求其超级视图(在这种情况下为自定义视图)来处理它, 但为什么??我已经通过 UITouchUPInside 将事件处理程序绑定到按钮
请帮我理解这个
【问题讨论】:
标签: ios uigesturerecognizer hittest uiresponder