我使用以下代码将控件带到前面:
[self.view bringSubviewToFront:control];
如何在两个控件之间识别;哪一个在前面,哪一个在后面
答案 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.具有更大指数的控制在前面