在iPhone上更改UI绘制顺序

时间:2010-10-24 03:42:35

标签: iphone

我目前在Interface Builder中内置了一个用户界面 - 它基本上由背景图片和一些标签组成。我需要在标签下方但在背景上为一些元素(图像)设置动画,但我还需要以特定的z顺序绘制它们。

我环顾四周,碰到了CATransformLayer--我还在调查它。这是管理图像Z顺序以模拟3D的最佳方法吗?我不想使用Open GL作为我正在做的动画将是非常简单的假3D ...

1 个答案:

答案 0 :(得分:2)

<强>背景

在iPhone上,UIViews有一个子视图NSArray。首先绘制UIWindow,然后按顺序绘制其子视图,然后绘制子视图。此外,还有第二个层次结构:每个UIView都有一个CALayer数组。根CALayer首先绘制,然后按顺序绘制每个CALayer。

<强>建议:

是的,您可以按照概述的方式进行操作。但是,如果您执行以下操作,代码可能会更简单一些:

在您的特定情况下,使用UIView来保存背景。给它两个子视图,最初是透明的,全尺寸的,在Interface Builder中设置弹簧和支柱,以保持背景的完整大小。在Interface Builder的大纲视图(-0)中排列它们,以便在UIView ButtonViewHolder 之前列出UIView ImageViewHolder

这样,您可以从 ImageViewHolder UIView中插入和删除UIImageViews,它们将被绘制在背景上方,并且位于UIButtons下方。