在窗口上创建三个视图:
橘色的v1
UIView *v1 = [[UIView alloc]initWithFrame:CGRectMake(100, 200, 200, 200)];
v1.backgroundColor = [UIColor orangeColor];
[self.window addSubview:v1];
黑色的v2
UIView *v2 =[[UIView alloc]initWithFrame:CGRectMake(50, 300, 300, 300)];
v2.backgroundColor = [UIColor blackColor];
[self.window addSubview:v2];
绿色的v3
UIView *v3 =[[UIView alloc]initWithFrame:CGRectMake(50, 100, 80, 400)];
v3.backgroundColor = [UIColor greenColor];
[self.window addSubview:v3];
初始化视图的顺序 就是把视图存放到subviews 这个数组类里面的位置
父视图的位置是0 之后加入到父视图的位置+1
改变视图的位置 就是在改变 subviews 数组里面元素的位置
现在运行程序 Simulator 显示的结果如下:
现在我们把橘色的视图v1移到最上面:
[self.window bringSubviewToFront:v1];结果如下:
本来在窗口最下面的视图v1现在在最上面了
现在把上一个方法注释掉 把视图v3移动到最下面
[self.window sendSubviewToBack:v3];
我们知道了所有添加的视图在 subviews 数组的中的下标
现在交换两个视图v1和v3的位置
[self.window exchangeSubviewAtIndex:1withSubviewAtIndex:3];
现在我们试试新建一个视图 并且添加到想要的已存在视图的上面或者下面
新添加一个紫色的视图insertView
UIView *insertView = [[UIView alloc]initWithFrame:CGRectMake(80, 250, 80, 150)];
insertView.backgroundColor = [UIColor purpleColor];
[self.window addSubview:insertView];
插入一个视图 到视图v1上面
[self.window insertSubview:insertView aboveSubview:v1;
注释掉上一句 把紫色视图添加到绿色视图v3下
[视图名 removeFromSuperview];
tag:标签 标记 标号 -> 同一个父视图里面的身份证号
insertView.tag = 100;
可以通过tag值 在他的父视图上找到 这视图
viewWithTag: 在一个父视图上面 查找有没有tag值 是多少的视图
UIView *v = [self.window viewWithTag:100];
这时 v 就是 insertView
v.backgroundColor = [UIColor redColor];