如何在自定义UIView中检测屏幕上的触摸?

时间:2013-12-02 17:05:27

标签: ios uiview touch hittest

我想在我的UIView子类中观看屏幕上的用户触摸。特别是还有一些额外的条件:

  • 触摸不应该被我的视线捕捉(例如,如果用户点击某个按钮或滚动某些应该接受动作的东西)
  • 可以有多个观看触摸的视图,它们不应该相互冲突
  • 方法应尽可能通用(因此我们可以在tabbar或导航按钮上点击)

我可以假设使用自定义hitTest:方法添加特定的全屏视图。此视图具有添加/删除委托以查看触摸的界面。但是这种方法在编码方面“很难”,我希望找到更优雅,更简单的解决方案。

1 个答案:

答案 0 :(得分:0)

你可以在UIView子类中编写touchesBegan。

  

因为如果它有像​​button或scrollView这样的子视图,它们将是第一个响应者,并且触摸scrollView不会触发你的UIView子类的touchesBegan。

     

除非侦听器subView明确地将该触摸传递给您的子类,否则它不会与其他触摸侦听器发生冲突。