如何防止剪辑部分的子视图仍然处理触摸事件?

时间:2011-09-22 23:20:39

标签: iphone ios cocoa-touch ipad uikit

我目前正在父视图中剪切一些UIViews,如下图所示:

illustration of subviews clipped to a superview

问题是子视图的剪切部分(不可见部分)仍在接收触摸事件,直观地说,应该转到那里可见的其他视图。

我是否应该采取其他措施来实现这一行为,或者这实际上并不是一件容易的事情?

1 个答案:

答案 0 :(得分:3)

这种情况正在发生,因为本案例中的父视图具有

的自定义实现

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

并且它没有执行此边界测试(我现在假设它是默认实现的一部分)。

添加:

if ([self pointInside:point withEvent:event]) {
    ....
}

围绕该实现中的代码解决了这个问题。