我正在开发一款iPad应用程序,它向用户呈现一组可缩放的页面。有一个(分页)UIScrollView
用于在页面之间滚动,每个页面由另一个UIScrollView
组成,它允许捏合和缩放,并包含作为子视图的实际页面内容,这是一个自定义{{1}带有UIView
图纸的子类。
从iOS 7.0.x开始,一切正常。不幸的是,当在iPad上运行应用程序更新到iOS 7.1时,页面“CALayer
对触摸事件完全没有响应:连接到它的UIView
都没有被触发,UIGestureRecognizer
方法永远不会被调用,如果它们发生在touchesBegan/Moved/Ended
的边界内(在它之外,它们可以工作),甚至不会识别父ScrollView应该捕获的捏合手势。
当我将父Scrollviews的UIView
属性设置为NO时,触摸事件会正确到达scrollEnabled
,但当然这不是我需要的行为。
Apple文档没有说明UIView
框架中的更改,我也不知道如何调试它,因为在以前的iOS版本中,一切都按预期工作。
有什么想法吗?
编辑31/03/2014:
我能够做更多的调试,并注意到如果我省略添加到UIKit
的{{1}}几个子层(来自{{1}的两个自定义子类}),问题不会发生。
答案 0 :(得分:2)
我最终解决了我的问题。
我所做的是停止将CALayer
作为子图层添加到UIVIew
,而是将CALayer
s'父视图作为子视图添加到主{ {1}}。
我仍然不知道为什么在7.1中发生这种情况,因为在本主题的文档中没有提到7.0的更改。
无论如何,希望这可以帮助...