Til*_*ill 35 uiview uiresponder uigesturerecognizer ios uievent
你将如何允许UIGestureRecognizer的UIView接收触控事件,但也确保其他,垫层/叠加UIView也收到同样的触摸事件?
让我们说我有以下观点 - hierachie:

视图A(蓝色)和B(红色)都是同一超视图(灰色)的子视图.换句话说,他们都是兄弟姐妹,顺序决定了哪一个涵盖了另一个.
选项1:视图B(红色)具有常规UIButton作为其子视图.选项2:视图A(蓝色)具有常规UIButton作为其子视图.
给出选项1以便解释:视图A(蓝色UITapGestureRecognizer)附加了(或者甚至更多,其他UIGestureRecognizers).什么是最优雅的方法,以确保它UIButton确实接收其区域的所有接触,但视图A(蓝色)接收它的那些接触UITapGestureRecognizer?
如果可能的话,解决方案不应该涉及扩展UIButton-class并手动转发按钮本身的任何事件.想象一下,视图B将包含更多控件,而不仅仅是一个按钮.所有这些控件都应该以某种方式允许视图A接收它的触摸UIGestureRecognizer.
我确实提供了两个选项,因为我不关心那些视图(A或B)中的哪一个是第一个,只要两个接收到触摸.
到目前为止,我的所有方法都突然达到了死胡同.也许自定义响应链是一个很好的解决方案?我一直认为在整个UIKit/ UIEvent/ UIResponder堆栈中必须有一个优雅的解决方案.
ser*_*gio 19
你试过这个吗?
cancelsTouchesInView一个布尔值,用于影响在识别手势时是否将触摸传递到视图.
@property(nonatomic) BOOL cancelsTouchesInView
Run Code Online (Sandbox Code Playgroud)