我在应用商店中有一款应用接近 5 星评级,但是当 iOS 6 发布时,应用主视图层次结构中的一些视图开始闪烁。这发生在商店中的应用程序(我在 iOS6 发布时将其删除)以及模拟器中。
我花了大约 14 个小时,尝试了 100 件事,在 Xcode 中调试它,但无法得到任何牵引力。子视图消失又重新出现,就像有一个小鬼随机地为它们中的每一个设置可见属性,最多每秒 10 次,在一切正常的较长时间之间。
主界面是一个用户可以旋转的表盘,我在图层上使用 3d 变换来旋转它。我发现的唯一模式是,当表盘旋转到某些离散位置时,4 个消失的子视图中的 3 个一起消失,就好像锁定为一个一样。
第 4 个消失的子视图应该是静态图像,它会闪烁,没有明显的图案。
我喜欢任何关于如何调试它的想法和提示。这不是内存警告,执行额外的 [setNeedsToDisplay] 似乎没有效果。我开始认为 Apple 在 iOS6 中破坏了某些东西,但我找不到其他人谈论这些问题。
以下是主视图的子视图和 CALayers 层次结构的细分:
- 我的层次结构包含 2 个很好的基本 CALayers。
- 上面是一个非常大的自定义 UIView(使用 drawRect)和一个大的 UIImageVIew,当底部的一个旋转到某些位置时,它们总是一起闪烁。只有底部的正在旋转。
- 上面是一个自定义的文本绘制 UIView,它不会闪烁。
- 上面是一个小的红色引脚图形 UIImageView,它与上述 2 个视图同时闪烁。这是一个普通的 UIImageView;没有转换或子类或自定义绘图代码!然而它仍然有同样的闪烁。
- 上面是一个不可见的 UIButton,它似乎一直在工作。
- 上面是一个 UIImageView,它是一个不断闪烁的小图形,与其他 3 个“链接”层的基于旋转的闪烁无关(我说链接是因为它们喜欢一起消失)。