iOS 6的视图层级恶梦(iOS 6 view hierarchy nightmare)

2019-09-22 17:47发布

我已经在App Store中的应用程序与近5星评级,但在iOS 6中走了出来,一些在应用程序的主视图层次的意见开始闪烁。 出现这种情况的,这是在店里(我删除它时,iOS6的出来),以及在模拟器中的应用程序。

我花了大约14个小时,试图100分的东西,在Xcode调试这一点,但不能得到任何牵引。 子视图消失,再次出现像有一个小鬼为他们每个人了随机设置Visible属性和关闭,以每秒10次,在更长的时间,一切正常之间。

主界面是用户可以旋转,其中我使用的层上3D变换将它旋转一个转盘。 我发现的唯一的模式是,4个消失子视图的3一起消失,就好像被锁定为一体,当所述表盘被旋转以一定的离散位置。

第四消失子视图应该是一个静态图像和它没有明显的图案闪烁和关闭。

我喜欢有什么想法,建议,我怎么能调试这一点。 这不是一个内存警告,并执行额外的[setNeedsToDisplay]似乎没有任何效果。 我开始认为苹果打破了iOS6的东西,但我无法找到任何人谈论这些问题。


这里是主视图的子视图和CALayers的层次结构的细分:

  1. 我的层次结构包含2个基地CALayers是罚款。
  2. 以上说的都是一个非常大的自定义的UIView(使用的drawRect)和一个大的UIImageView即停止闪烁在一起,一如既往,当底部一个旋转到一定位置。 只有底部有一个正在旋转。
  3. 以上说的是一个自定义文本绘制的UIView不会停止闪烁。
  4. 以上说的是,在确切相同的时间在上述2次闪烁关小红色销图形的UIImageView。 这是一种香草的UIImageView; 没有转换或subsclass或自定义绘图代码! 然而它仍然具有相同的闪烁。
  5. 上面说的是一种无形的UIButton,似乎所有的工作时间。
  6. 以上说的是一个UIImageView这是一个小的图形是闪烁的关闭和开启持续,无关其他3“链接”层的基于旋转的闪烁(我说联系的,因为他们喜欢一起消失)。

Answer 1:

手动尝试设置您的视图层的z属性,以确保该层次是你所需要的。



Answer 2:

(这是不是一个真正的答案,这是与大鼠的回答答复,但我没有信誉点尚未就此发表评论)

是的,明确设置zPositions似乎解决它,是它的怪异。 我也遇到了这个问题,并在这里的博客上讲述它: iOS 6的渲染错误:三维旋转使图层渲染到无尊重视图层次 。 这似乎是在IOS 6中引入的博客有一个链接,我对苹果提起的bug打开雷达版,以及你可以看到运行的bug和z位置固定试样项目渲染错误。



文章来源: iOS 6 view hierarchy nightmare