代码之家  ›  专栏  ›  技术社区  ›  user1233587

使用UIGestureRecognizer传递奇怪的ios触摸事件

  •  3
  • user1233587  · 技术社区  · 12 年前

    嗨,我在iOS自定义视图中观察到一些奇怪的东西,我在自定义视图的旁边有一个按钮,我正在寻找文档或你的答案来解释我为什么会有这种观察

    我有一个自定义视图(UIView的子类),它包含一个简单的按钮,我通过addTarget:Action与UITouchUpInside绑定按钮触摸事件,我只将选择器绑定到NSLog消息的简单方法

    如果您显示自定义视图并点击按钮,您可以在控制台中看到消息,一切正常。

    但是,如果您将UIGestureReognizer添加到自定义视图中并运行它,当您单击按钮时,它将不再打印消息,为什么??? 我做了更多的深入调查,通过在自定义视图中查看hitest方法(视图包含按钮)(我覆盖了它,但我什么都没做,我只是再次调用super),hitest返回了正确的视图,即当我点击按钮时,自定义视图的hitest方法返回UIButton

    我不理解这里的事件链,有人能指出解释这一点的文档吗?

    在我看来,当你将regonizer添加到按钮的容器视图中时,出于某种原因,按钮不知道如何处理事件,所以它要求其超视图(在这种情况下是自定义视图)来处理它,但为什么??我已经通过UITouchUPInside将事件处理程序绑定到按钮

    请帮忙我想了解一下

    1 回复  |  直到 12 年前
        1
  •  0
  •   Adam    12 年前

    设置您的识别器 cancelsTouchesInView 属性到 NO

    推荐文章