同时在多个UIView上接收触摸事件

我有一堆
UIViews
堆叠在一起(不是嵌套)。我希望他们都对触摸作出反应,但似乎最顶层的视图遮挡了它下面的视图,阻止它们接收触摸事件。 起初我以为我会用最顶层的视图捕捉所有触摸事件,然后手动调用
hitTest
,或所有底层视图的
pointInside
方法,但我发现这两种方法都是私有的(可能是吗?)并且无法访问。 任何想法如何实现它?     
已邀请:
您可以检查触摸是否适合您的最顶层视图。如果不是,您可以调用超级视图的相同方法。像[self.superview sameMethod:sameParameter]之类的东西。 您的最顶层视图有一个方法
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
在那个方法里面你正在做你的逻辑吗? 在方法内部,您无法检查收到的触摸是否位于最顶层的视图中
UITouch *touch = [touches anyObject];
[touch locationInView:self];
如果没有,你将它传递给superView使用相同的方法
[self.superview touchesEnded:touches withEvent:event];
    
触摸被发送到单个视图。然后,该视图可以选择性地将它们传递给响应者链。如果你想处理一组视图的触摸,你应该让他们将这些事件转发到下一个响应者并且拥有所有这些事件的共同父级(或者他们的视图控制器,因为控制器也是响应者链的一部分)处理那些触动。 https://developer.apple.com/library/mac/documentation/General/Devpedia-CocoaApp-MOSX/Responder.html     

要回复问题请先登录注册