UIScrollView中的UIView在iOS 7.1中变得没有响应

时间:2014-03-27 15:15:37

标签: ipad uiview uiscrollview ios7.1

我正在开发一款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}的两个自定义子类}),问题不会发生。

1 个答案:

答案 0 :(得分:2)

我最终解决了我的问题。

我所做的是停止将CALayer作为子图层添加到UIVIew,而是将CALayer s'父视图作为子视图添加到主{ {1}}。

我仍然不知道为什么在7.1中发生这种情况,因为在本主题的文档中没有提到7.0的更改。

无论如何,希望这可以帮助...