iOS 6视图层次结构的噩梦

ava*_*nce 5 iphone calayer uiview drawrect ios6

我在应用程序商店中有一个应用程序有近5星评级,但当iOS 6出来时,应用程序主视图层次结构中的一些视图开始闪烁.这发生在商店中的应用程序(我在iOS6出来时将其删除)以及模拟器中.

我花了大约14个小时,尝试了100件事,在Xcode中进行调试,但无法获得任何牵引力.子视图消失并重新出现,就像有一个gremlin随机设置可见属性,每秒最多10次,在一切正常的较长时段之间.

主界面是用户可以旋转的表盘,我在图层上使用3d变换来旋转它.我发现的唯一模式是,当表盘旋转到某些离散位置时,4个消失的子视图中的3个消失在一起,好像被锁定为一个.

第四个消失的子视图应该是一个静态图像,它会闪烁,没有可辨别的模式.

我喜欢任何有关如何调试此问题的想法和提示.它不是内存警告,执行额外的[setNeedsToDisplay]似乎没有效果.我开始认为Apple在iOS6中破坏了一些东西,但我找不到其他人在谈论这些问题.


以下是主视图的子视图和CALayers层次结构的细分:

  1. 我的层次结构包含2个基本CALayer,很好.
  2. 上面是一个非常大的自定义UIView(使用drawRect)和一个大的UIImageVIew,它们一起闪烁,当底部旋转到某些位置时.只有底部旋转.
  3. 上面是一个不闪烁的自定义文本绘图UIView.
  4. 上面是一个小的红色图钉UIImageView,它与上面的2个视图完全同时闪烁.这是一个香草UIImageView; 没有变换或子类或自定义绘图代码!然而它仍然有同样的眨眼.
  5. 在上面是一个看似无效的UIButton.
  6. 上面是一个UIImageView,它是一个小图形,不断闪烁,与其他3个"链接"层的基于旋转的闪烁无关(我说链接因为它们喜欢一起消失).

The*_*Rat 2

尝试手动设置视图图层的 z 属性,以确保层次结构符合您的需要。