override func viewDidLoad() { super.viewDidLoad() let v1 = UIView(frame: CGRect(x: 0,y: 0,width: 200,height: 300)) v1.backgroundColor = UIColor.redColor() let v2 = UIView(frame: CGRect(x: 10,height: 300)) v2.backgroundColor = UIColor.purpleColor() self.view.insertSubview(v1,atIndex: 1) self.view.insertSubview(v2,atIndex: 2) //self.view.exchangeSubviewAtIndex(1,withSubviewAtIndex: 2) // self.view.bringSubviewToFront(v2) // self.view.sendSubviewToBack(v2) //v1.layer.zPosition = 3.0 print(self.view.subviews.indexOf(v1)) print(self.view.subviews.indexOf(v2)) }
在主view下面添加两个颜色的子view,一个是红色,一个是紫色.
1.索引大的会显示再前面,且索引可以任意给定
2.假如给的索引一样,最先插入的view的索引会自动加一,显示在最前面
3.bringSubviewToFront,将某个子view显示再所有子view的最前面.这时它的索引一定是最大
4.sendSubViewToBack,将某个子view显示到子view的最下面,这时它的索引是最小的
5.exchangeSubviewAtIndex,交换指定的两个索引所在的子view层级.
6.如果直接要修改某个子view的索引值,可以用layer.zPosition,也是值越大越靠前,越小越靠屏幕里面
7.所有的子view都在subviews数组里面,子view的索引跟它在这个数组的索引对应.