UIScrollView中的UIView触摸事件无法工作

3
我有一系列UIView放在UIScrollView中,但是这些视图对应的UIViewControllers并没有接收到触摸事件。如果我把这些视图从滚动视图中移除,它们就能正常工作。
我已经在这些视图上启用了userInteraction,但仍然不起作用!
这一定是可以实现的,如果有人能指点我正确的方向,我将不胜感激!
谢谢,
Mike
5个回答

1

视图是否有自己的触摸处理程序,还是依赖于视图控制器来获取触摸?根据您设置的方式,视图可能会处理触摸而不经过视图控制器。


视图没有自己的触摸处理程序,我已经将处理程序放在它们的控制器中。当将视图放在滚动视图之外时,所有这些都有效,但放在其中时却无效! - Michael Waterfall

1
我通过重写视图控制器的loadView方法并将视图的实例变量设置为一个简单的UIView子类来解决了这个问题,该子类会传递触摸事件。

0

你可能会发现这篇文章很有用。它是一个拦截事件的相当干净的示例。


0

为想要接收触摸事件的视图添加触摸处理程序,并使其正常工作。


0

检查在滚动视图代理方法中返回的内容以及滚动视图中的滚动视图。

正如mahboudz所提到的- 检查是否有任何自定义的触摸事件处理程序。如果没有,请添加一个。这样做会更轻松,你可以随心所欲地处理你的视图。查看苹果的scrollViewSuite示例应用程序。它们有tapDetectingImageView代理。我在我的应用中也使用了同样的方法,效果很好!希望对你有所帮助!


我是指在滚动视图中的viewForZooming和scrollViewDidScroll代理方法。 - AJ.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接