【问题标题】:View gesture handling: Detecting gestures on a big view which is a subview of a small view视图手势处理:检测大视图上的手势,大视图是小视图的子视图
【发布时间】:2014-11-10 21:05:47
【问题描述】:

我对 UIView 上的手势处理感到困惑,

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

如下图所示:

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

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

V1 有手势1

V2 有手势 2

V3 有手势 3

V3 太大,超出 V2 范围。

下图显示了响应的手势。

我的问题是部分 V3 的手势超出了 V2:

为什么响应的是 g1 而不是 g3?以及如何让g3响应?

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

【问题讨论】:

    标签: ios uiview uigesturerecognizer uiresponder


    【解决方案1】:

    您无法接收超出视图范围的事件。你的橙色视图不会收到事件;因此,它不会将事件传递给您的红色视图。

    为了完成此操作,您需要使用将橙色视图和红色视图分组但足够大以容纳两者的公共父级来更正视图层次结构,或者只需将手势识别器附加到灰色超级视图然后将您的触摸位置与您的视图边界进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 2012-10-22
      相关资源
      最近更新 更多