以编程方式添加子视图与在Interface Builder中添加它们

时间:2011-03-31 09:27:13

标签: iphone cocoa-touch uiview

我有一个初学者的问题。

我想知道子视图的级别以及如何确定它们。考虑在IB(sampleButton)中放置一个按钮,然后以编程方式创建子视图,如下所示:

[view insertSubview:aView atIndex:[view.subviews count]];

这相当于:

[view addSubview:aView];

现在,在这两种情况下,如果我没有弄错的话,我的索引(称为z,对吗?)应为1。

我在IB中的视图中添加了一个按钮,该按钮应该在索引0处(z = 0,或者从1开始?)。然后,如果我做一个view.subviews计数,这将给我数字1,因为我在索引0有1个对象。所以我的新子视图'aView'将被放置在index = 1,这只是我的sampleButton上面的一层

到目前为止一切顺利。但是,如果我不希望这样的事情呢?如果我想成为更高级别的sampleButton(例如1)和最低级别的'aView'(例如0)怎么办?我可以简单地这样做:

[view insertSubview:aView atIndex:0];

这会简单地处理我在IB中创建的按钮,将其推送到另一层,还是我必须告诉IB,sampleButton不应该在z = 0?

1 个答案:

答案 0 :(得分:1)

它的行为与您已经猜到的一样:如果您在索引0处插入子视图,则它在所有其他子视图的“下方”。