关于bringSubviewToFront

时间:2011-02-27 13:43:44

标签: xcode ios4 iphone

我使用以下代码将控件带到前面:

[self.view bringSubviewToFront:control];

如何在两个控件之间识别;哪一个在前面,哪一个在后面

2 个答案:

答案 0 :(得分:4)

您可以在超级视图中检查视图的顺序(在控件中,在您的情况下为self.view)subviews属性。

superview子视图中索引0处的视图是最后面的视图,然后索引1处的视图将位于其顶部,索引2处的视图将位于索引处的视图顶部等等 (基本上,视图位于视图之上,索引与其自己的索引相比较小)

NSInteger indexOfControl1 = [[self.view subviews] indexOfObject:control1];
NSInteger indexOfControl2 = [[self.view subviews] indexOfObject:control2];
if (indexOfControl1 > indexOfControl2) {
    //control1 is on top of control2
}

答案 1 :(得分:2)

如果这些控件具有相同的父视图,则它们的z顺序由subviews数组中的索引定义:

  

子视图:数组中子视图的顺序反映了它们的可见顺序   屏幕,索引为0的视图   是最后面的观点。

所以你的步骤将是:
1.获得控制权 2.在父级子视图数组中获取索引(使用indexOfObject:方法)
3.具有更大指数的控制在前面