我有一个关于iOS/Swift中触摸处理的问题:
我的项目看起来像这样
UIViewController
→ UIView
→ OverlayView (UIView)
→ ScrollView (UIScrollView)
OverlayView位于UIScrollView之上,两者都是UIViewController视图的子视图。
我这样做的原因是希望滚动视图在正常情况下(平移、缩放)运作,而遮罩视图不受滚动视图可见内容变化的影响。此外,遮罩视图应处理触摸事件,以显示滚动视图下方内容的指南。
我现在面临的问题是,遮罩视图上的触摸事件(touchesBegan、touchesMoved、touchesEnded、touchesCancelled)未传递到滚动视图(滚动视图不会平移/缩放)。
我找到了一种解决方案,可以通过重写point(inside point: CGPoint, with event: UIEvent?) -> Bool
并返回false
来将触摸事件转发到下面的视图。但这样遮罩视图上的触摸事件就无法调用。
有没有人有想法如何实现这种行为?我尝试在遮罩视图中调用所有下一个响应者的触摸事件,但这也没有效果。
感谢您的帮助!