问题: 有没有办法在其子视图中接收来自superview 直接的触摸(即在子视图边界之外的触摸)?
我想避免委托(正式/非正式),NSNotification,代理或任何其他中介解决方案将触摸事件从一个视图转发到另一个视图。
答案 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];
}