Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iPhone上更改UI绘图顺序_Iphone - Fatal编程技术网

在iPhone上更改UI绘图顺序

在iPhone上更改UI绘图顺序,iphone,Iphone,我目前有一个内置的界面生成器UI——它基本上由一个背景图像和一些标签组成。我需要在标签下面但在背景上设置一些元素(图像)的动画,但我还需要以特定的z顺序绘制它们 我环顾四周,发现了CatTransferMlayer——我还在调查。为了模拟3D,这是管理图像Z顺序的最佳方法吗?我不想使用OpenGL,因为我正在制作的动画将是非常简单的假3D…背景: 在iPhone上,UIView有一个子视图NSArray。首先绘制根窗口,然后依次绘制其子视图,然后再绘制其子视图。此外,还有第二个层次结构:每个UI

我目前有一个内置的界面生成器UI——它基本上由一个背景图像和一些标签组成。我需要在标签下面但在背景上设置一些元素(图像)的动画,但我还需要以特定的z顺序绘制它们


我环顾四周,发现了CatTransferMlayer——我还在调查。为了模拟3D,这是管理图像Z顺序的最佳方法吗?我不想使用OpenGL,因为我正在制作的动画将是非常简单的假3D…

背景:

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

建议:

是的,你可以按你所说的做。但是,如果执行以下操作,代码可能会简单一些:

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


这样,您就可以从ImageViewHolder UIView中插入和删除UIImageView,它们将在背景上方和UI按钮下方绘制。

谢谢!所以,如果我在ImageViewHolder视图中添加3个不同的UIImageView,我添加的视图是最后一个还是第一个绘制在顶部?另外,如果我添加的第一个视图绘制在底部,是否有办法将其保持在顶部?-[addSubview:]将其放置在末尾,因此它绘制在最后,但UIView有其他方法可以让您在绘制顺序中将其放置在需要的位置。不过,不要使用普通的NSMutableArray方法来更改子视图数组。谢谢您的帮助。看起来我可以使用像bringSubviewToFront这样的东西来做我想做的:)还可以插入Subview:atIndex:;交换子视图索引:与子视图索引:;insertSubview:belowSibView:;insertSubview:子视图上方:;