我在应用程序商店中有一个近5星评级的应用程序,但是当iOS 6出现时,应用程序主视图层次结构中的一些视图开始闪烁。这发生在商店中的应用程序(我在iOS6发布时将其删除)以及模拟器中。
我花了大约14个小时,尝试了100件事,在Xcode中调试这个,但无法获得任何牵引力。子视图消失并重新出现,就像有一个gremlin随机设置可见属性为每秒最多10次,在一切正常的较长时段之间。
主界面是用户可以旋转的刻度盘,我在图层上使用3d变换来旋转它。我发现的唯一模式是,当表盘旋转到某些不连续的位置时,4个消失的子视图中的3个消失在一起,好像被锁定为一个。
第4个消失的子视图应该是一个静态图像,它会闪烁并且没有可辨别的图案。
我喜欢任何有关如何调试此内容的想法和提示。它不是内存警告,执行额外的[setNeedsToDisplay]似乎没有效果。我开始认为Apple在iOS6中破坏了一些东西,但我找不到其他人在谈论这些问题。
以下是主视图的子视图和CALayers层次结构的细分:
答案 0 :(得分:3)
(这不是一个真正的答案,这是对The Rat答案的回复,但我还没有评论的声誉点)
是的,明确设置zPositions似乎可以解决它,是的,这很奇怪。我也遇到了这个问题并在此发表了博客:iOS 6 Rendering Bug: 3D-Rotation Causes Layers to Render Without Respect for View Hierarchy。它似乎是在iOS 6中引入的渲染错误。该博客有一个指向我向Apple提交的错误的Open Radar版本的链接,以及您可以运行以查看错误和zPosition修复的示例项目。
答案 1 :(得分:2)
尝试手动设置视图图层z-property以确保您需要层次结构。