Ios 视图手势处理:在大视图(小视图的子视图)上检测手势

Ios 视图手势处理:在大视图(小视图的子视图)上检测手势,ios,uiview,uigesturerecognizer,uiresponder,Ios,Uiview,Uigesturerecognizer,Uiresponder,我搞不懂如何用手势表达自己的观点 假设视图层次结构中有三个视图 如下图所示: V1 (Grey) | + V2 (Orange) | + V3 (Red) 每个视图都有一个附加的点击手势 V1有手势1 V2有手势2 V3有手势3 V3太大,超出了V2的范围 下图显示了响应的手势 我的问题是V3的手势超出V2的范围: 为什么响应g1而不是g3?如何让g3做出回应 注意:我还设置了v3.userInteractionEnabled=true,不起作用您不能接收视图范围之

我搞不懂如何用手势表达自己的观点

假设视图层次结构中有三个视图

如下图所示:

V1 (Grey) 
 | 
 + V2 (Orange)
    |
    + V3 (Red)

每个视图都有一个附加的点击手势

V1有手势1

V2有手势2

V3有手势3

V3太大,超出了V2的范围

下图显示了响应的手势

我的问题是V3的手势超出V2的范围:

为什么响应g1而不是g3?如何让g3做出回应


注意:我还设置了
v3.userInteractionEnabled=true
,不起作用

您不能接收视图范围之外的事件。您的橙色视图将不会接收事件;因此,它不会将事件传递给红色视图

为了实现这一点,您需要使用一个将橙色视图和红色视图分组的公共父视图来更正视图层次结构,但该父视图足够大,可以同时容纳这两个视图,或者只需将手势识别器连接到灰色superview,然后将触摸的位置与视图的边界进行比较