【发布时间】:2017-04-22 12:18:04
【问题描述】:
我有一个关于 iOS / Swift 中的触摸处理的问题:
我的项目是这样的
UIViewController
→ UIView
→ OverlayView (UIView)
→ ScrollView (UIScrollView)
OverlayView 位于 UIScrollView 之上。两者都是 UIViewControllers 视图的子视图。
我这样做的原因是,我希望滚动视图能够正常运行(平移、缩放),而覆盖视图不受滚动视图可见内容更改的影响。此外,覆盖视图应处理触摸事件,以在下面的滚动视图中显示内容指南。
我现在面临的问题是,覆盖视图上的触摸事件(touchesBegan、touchesMoved、touchesEnded、touchesCancelled)没有进入滚动视图(滚动视图没有平移/缩放)。
通过覆盖point(inside point: CGPoint, with event: UIEvent?) -> Bool 并返回false,我找到了将触摸事件转发到下一个视图的解决方案。但是覆盖视图上的触摸事件不会被调用。
有人知道如何实现这种行为吗?我尝试在覆盖视图中调用下一个响应者的所有触摸事件,但这也不起作用。
感谢您的帮助!
【问题讨论】:
-
不要在滚动视图上使用概览,而是创建 UIScrollview 的子类并在那里处理触摸。
-
您找到解决方案了吗?
标签: ios swift uiscrollview touch