我有一堆堆叠在一起的UIViews
(不是嵌套)。我希望它们都能对触摸做出反应,但似乎位于最上层的视图会遮盖下面的视图,从而阻止它们接收触摸事件。
起初,我想用最上层的视图来捕获所有触摸事件,然后手动调用所有底层视图的 hitTest
或 pointInside
方法,但我发现这两种方法不知何故是私有的(可能是吗?),无法访问。
有什么办法解决这个问题吗?
我有一堆堆叠在一起的UIViews
(不是嵌套)。我希望它们都能对触摸做出反应,但似乎位于最上层的视图会遮盖下面的视图,从而阻止它们接收触摸事件。
起初,我想用最上层的视图来捕获所有触摸事件,然后手动调用所有底层视图的 hitTest
或 pointInside
方法,但我发现这两种方法不知何故是私有的(可能是吗?),无法访问。
有什么办法解决这个问题吗?
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
在这个方法里,你正在执行你的逻辑对吗? 在这个方法里,你不能检查接收到的触摸是否在你的最上层视图上吗?
UITouch *touch = [touches anyObject];
[touch locationInView:self];
如果不是,你可以使用以下方式将其传递给superView的相同方法:
[self.superview touchesEnded:touches withEvent:event];