【问题标题】:UIView: Let subviews receive touches, but not main view?UIView:让子视图接收触摸,而不是主视图?
【发布时间】:2011-08-04 11:43:05
【问题描述】:

我有几个单元格包含此结构中的视图:

  • 主视图
  • 后视
  • 前视图

单元格部分重叠。这意味着单元格 A 的主视图将部分覆盖单元格 B 的前视图。像这样:

  • B 主视图
  • B 后视
  • B 前视图
    • 主视图
    • 后视图
    • 前视图

我想拦截对前视图和后视图的触摸,但我希望主视图忽略它们。

(我尝试在主视图上禁用用户交互,但这也会禁用前视图和后视图)。

有什么建议吗?

【问题讨论】:

    标签: ios uiview touch


    【解决方案1】:

    我在这里找到了答案:http://vectorvector.tumblr.com/post/2130331861/ignore-touches-to-uiview-subclass-but-not-to-its

    基本上,我将主视图设为 UIView 的子类,并使用以下内容覆盖 hitTest:

    -(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
        id hitView = [super hitTest:point withEvent:event];
        if (hitView == self) return nil;
        else return hitView;
    }
    

    (请注意,对于有问题的 UIView,您必须将 UserInteractionEnabled 设置为 true、勾选、是!)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多