iOS 在其子视图中接收父视图的触摸事件

iOS Receiving superview's touches events in it's subview

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

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

这样就可以了。在子视图中覆盖 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];
}