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

Objective c 同时在多个UIView上接收触摸事件,objective-c,events,uiview,touch,stacked,Objective C,Events,Uiview,Touch,Stacked,我有一堆ui视图一个叠在另一个上(不是嵌套的)。我希望他们都能对触摸做出反应,但最上面的视图似乎掩盖了它下面的视图,阻止他们接收触摸事件 起初,我想我应该用最顶端的视图捕捉所有触摸事件,然后手动调用 hitTest,或所有底层视图上的pointInside方法,但我发现这两个方法都是私有的(可能是吗?),无法访问 有什么办法吗?您可以检查触摸屏是否适合您的最上面视图。如果没有,您可以调用与superview相同的方法。类似于[self.superview sameMethod:sameParam

我有一堆
ui视图
一个叠在另一个上(不是嵌套的)。我希望他们都能对触摸做出反应,但最上面的视图似乎掩盖了它下面的视图,阻止他们接收触摸事件

起初,我想我应该用最顶端的视图捕捉所有触摸事件,然后手动调用
hitTest
,或所有底层视图上的
pointInside
方法,但我发现这两个方法都是私有的(可能是吗?),无法访问


有什么办法吗?

您可以检查触摸屏是否适合您的最上面视图。如果没有,您可以调用与superview相同的方法。类似于[self.superview sameMethod:sameParameter]的东西

最上面的视图有一个方法

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
在这个方法中,你的逻辑正确吗? 在方法内部,您不能检查接收到的触摸是否位于您的最上方视图吗

UITouch*touch=[触摸任何对象]
[触摸位置查看:自]

如果没有,则使用

[self.superview touchesEnded:touches withEvent:event];

触摸被发送到单个视图。然后,该视图可以选择将它们向上传递到响应器链。如果要处理对视图集合的触摸,应让它们将这些事件转发给下一个响应者,并让所有这些事件(或它们的视图控制器,因为控制器也是响应者链的一部分)的共同父级处理这些触摸

打字错误:“superView”=>“superView”