一个视图原来添加在某个父视图上,然后再将它添加到另外的一个视图上,这个视图会从原来的某个父视图中移除,添加到新的视图上。
子视图对象指针存在父视图的subviews数组中,说明,一个视图可以有多个子视图
视图间的层次关系:
1.子视图覆盖父视图。同一视图的子视图之间,后添加的视图覆盖先添加的视图。
2.假设self.window有红色和黄色子视图, 黄色视图在红色视图后添加,这个情况下,不管红色视图由多少子视图,都被会黄色视图覆盖。
redView.clipsToBounds = YES;
文档解释:// When YES, content and subviews are clipped to the bounds of the view. Default is NO.
//设置是否裁剪子视图,设置为YES,会将当前视图的子视图超出部分给裁剪掉
yellowView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
// UIViewAutoresizingNone //默认情况,(视图)不变
// UIViewAutoresizingFlexibleLeftMargin //可变左边距
// UIViewAutoresizingFlexibleWidth //可变宽度
// UIViewAutoresizingFlexibleRightMargin //可变右边距
// UIViewAutoresizingFlexibleTopMargin //可变上边距
// UIViewAutoresizingFlexibleHeight //可变高度
// UIViewAutoresizingFlexibleBottomMargin //可变下边距
//把某一个子视图放到子视图中最上面的位子,调整位置后,在父视图的数组中的位置也发生变化。
[self.window bringSubviewToFront:view1];
//把某一个子视图放到视图的最后面
[self.window sendSubviewToBack:view1];
//把参数一的视图放到指定数组中的指定位置
[self.window insertSubview:view3 atIndex:2];
//把参数一的视图放到数组中指定视图的上面
[self.window insertSubview:view3 aboveSubview:view1];
//把参数一的视图放到数组中指定视图的下面
[self.window insertSubview:view3 belowSubview:view1];
//交换指定位置的两个视图的位置
[self.window exchangeSubviewAtIndex:0 withSubviewAtIndex:2];