IPhone Interface Builder:Z-Index,按钮的Z顺序,图像,ui元素等?

时间:2010-02-16 20:33:15

标签: iphone xcode interface-builder

我正在界面生成器中拖动...我想指定图像是在前面(如指示符)还是在按钮后面(如背景)。我没有看到任何z-index属性,因为我习惯在其他环境中看到它。如果没有 一个z-index属性什么是我想要完成的最好的方法?谢谢!

7 个答案:

答案 0 :(得分:85)

我通过点击ui元素(按钮,图像,文本等)并转到布局菜单(屏幕顶部)实现我想要的效果然后我使用“带到前面”,“发送到后面” “等等。

在Xcode 4.2中,您可以在菜单顶部找到选项:编辑器 - >排列

答案 1 :(得分:24)

没有使用子视图就有Z顺序。一方面,有“发送到前面”和“发送到后面”的菜单选项。但是,如果您将视图中的元素视为元素树,则可以通过拖动在那里重新排序(而不是在视图中)。

子视图非常适合分组,但不能用于排序(除了整个“集合”保持在同一级别)。

答案 2 :(得分:13)

在XCode开发中,当UI元素或视图是该视图的子视图时,它位于另一个视图的前面。例如,如果视图B是背景而视图C是控件,则将控件置于背景之上(即更接近用户),您将使视图C成为视图B的子视图。在Interface Builder中,这是通过以下方式完成的:将控件拖入后台。

基本上,您正在查看树结构,背景中的视图靠近树的根,并且前景(靠近用户)的视图靠近树的叶子。

Apple的iPhone开发人员文档中的Windows and Views文档可能有助于澄清问题。

注1:您几乎不应重叠单个控件,例如按钮和文本字段。这样做违反了Apple的用户界面指南。当然,可以,如果你愿意,仍然可以这样做,但你需要知道你正走出安全区。如果你只是在编写一个“普通”的iPhone应用程序,最好的办法是坚持使用Apple的做事方式。

注2:如果出于某种原因,您确实需要以特定方式重叠事物,则可以使用CALayer个对象来保持所有正确排序的内容。 CALayer对象是Apple核心动画技术的一部分。

答案 3 :(得分:11)

在“XCode 4.6界面”构建器中,通过菜单(编辑器 - >显示文档大纲)或单击画布左下角的半透明按钮调出“文档大纲”。在“对象”列表下,显示视图的Z顺序,用户可以拖动它们以更改彼此之间的顺序。越接近屏幕底部,该元素与用户“越接近”。

答案 4 :(得分:3)

我知道这是一个老问题,但在xcode 4.6中,我可以将列表中的元素向上和向下拖动到左侧。列表中的元素越低,它就越接近用户,例如列表中的底部元素将始终可见,除非它不在屏幕上。我不确定这是什么时候实施的,但它似乎比其他答案更容易。

答案 5 :(得分:2)

在斯威夫特:

在视图中,您想要带到顶部

     superview?.bringSubviewToFront(self)

答案 6 :(得分:1)

对我有用的是在代码中执行此操作:

self.view.sendSubviewToBack(imageView);

我不知道为什么,但其他答案都没有解决。我将上面的行放在viewDidLoad方法中。