ios - UIView:让 subview 接收触摸,而不是主视图?

标签 ios uiview touch

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

  • 主视图
  • 回顾
  • 前 View

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

  • B主视图
  • B 回顾
  • B 前 View
    • 主视图
    • 回顾
    • 正 View

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

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

有什么建议吗?

最佳答案

我在这里找到了答案: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,勾选,是!)

关于ios - UIView:让 subview 接收触摸,而不是主视图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6940825/

相关文章:

ios - 在多线程中等待返回

ios - 在新的 Firebase 4.0 版本中获取数据库引用

ios - 如何添加约束,使一个 View 与其他两个 View 中最宽的一个一样宽?

Android - 假设 MotionEvent.ACTION_UP 将 100% 意味着用户已触摸 View 是否安全?

javascript - iAd js 开发者库

iphone - UIWindow subview 在应用程序变为事件状态后消失

ios - Swift - 屏幕更新后 - UIView 到 UIImage 的转换

javascript - 取消移动 IE 11 上事件的滚动

ios - Cocoa Touch,将变换标识设置为等于当前变换状态

javascript - 为什么 showModal 在 iOS 中显示全屏?