iOS接收超级视图触及其子视图中的事件

时间:2015-01-13 13:21:13

标签: ios objective-c uiview uiresponder

问题: 有没有办法在其子视图中接收来自superview 直接的触摸(即在子视图边界之外的触摸)?

我想避免委托(正式/非正式),NSNotification,代理或任何其他中介解决方案将触摸事件从一个视图转发到另一个视图。

1 个答案:

答案 0 :(得分:1)

这样就可以了。覆盖子视图中的pointInside。希望能够满足您的要求。

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
   point = [self convertPoint:point toCoordinateSpace:self.superview];
    CGRect frame = self.superview.frame;
    if (CGRectContainsPoint(frame, point)) {
        return YES;
    }
    return [super pointInside:point withEvent:event];
}