layer.zPosition不适用于非兄弟UIViews

iPa*_*011 1 iphone graphics layer quartz-graphics uiimageview

我有一个相当复杂的UIImageViews 层次结构.最初,当一个人UIImageView在另一个人面前移动时,我正在仔细地交换兄弟姐妹的命令.然后我发现了myUIImageView.layer.zPosition并转而使用它.工作得更简单.它甚至几乎一直都在工作.我从这个问题中发现,zPosition只能在兄弟层中使用.大!所以我真的有两个问题:有没有关于此的实际文档?并且,我可以使用某种软糖来实现这一点吗?(比如将我的所有UIImageViews添加到永远不可见的UIView).Thx提前.

MHC*_*MHC 5

从你的问题的标题,我想知道你是否理解该zPosition属性适用于兄弟,而不是兄弟视图.要处理zPosition属性中每个图像的深度,您需要将所有图像作为兄弟图层放在一个单独的UIView对象中.该zPosition属性记录在Apple的核心动画编程指南中:

zPosition属性指定图层位置的z轴分量.zPosition旨在用于设置图层相对于其兄弟图层的视觉位置.它不应该用于指定图层兄弟的顺序,而是重新排序子图层数组中的图层.

  • @MHC,@布拉德。谢谢您的评论。我想我有。我使用“addSublayer”尝试创建一个“平面”层层次结构,独立于我的“UIView”层次结构。没用。我必须在创建自己的“手动”层次结构(使用全局“zPosition”)的不便之间做出选择,或者在“UIViews”之间交换子视图,或者只是对图形元素的顺序进行有限的控制(或者可能切换到 cocos2d) 。 (2认同)