1:简介
1:同一父视图情况下,后被加入的子视图,在更上一层
2:子视图在数组中排列的顺序,就是被添加进去的顺序
2: 方法
(1):找到任意层的btn,将其放到最外层
bringSubviewToFront
(2): 获取任意层的btn,将其放到最底层
sendSubviewToBack
(3):insertSubview方法有两个作用,1.如果被插入的视图,还未与父视图建立父子视图关系,那么插入方法,会把该视图与父视图建立起父子视图关系。 2.调整视图的层次关系
(4)表示层数之间进行交换 比如:exchangeSubviewAtIndex:3 withSubviewAtIndex:1 表示第4层和第2层进行交换,当找不到层数时,不会进行交换 (不是指frame.而是指层数) (层数的计算从0开始)
具体代码如下:
func createSuperView(){
let superView = UIView.init(frame: UIScreen.mainScreen().bounds)
superView.backgroundColor = UIColor.redColor()
self.view.addSubview(superView)
for i in 0...2 {
let button = UIButton.init(type: .System)
button.frame = CGRect(x: 50 + 50 * i, y: 200 + 50 * i, width: 100, height: 100)
button.backgroundColor = UIColor.init(red: CGFloat(arc4random_uniform(256)) / 255, green: CGFloat(arc4random_uniform(256)) / 255, blue: CGFloat(arc4random_uniform(256)) / 255, alpha: 1)
button.setTitle("我是\(i + 1)号btn", forState: .Normal)
button.tag = i + 11
button.titleLabel?.adjustsFontSizeToFitWidth = true
superView.addSubview(button)
}
//同一父视图情况下,后被加入的子视图,在更上一层
//子视图在数组中排列的顺序,就是被添加进去的顺序
//1:找到任意层的btn,将其放到最外层
let btn = superView.viewWithTag(12)
superView.bringSubviewToFront(btn!)
//获取任意层的btn,将其放到最底层
let btn_btn = superView.viewWithTag(13)
superView.sendSubviewToBack(btn_btn!)
//插入一个视图
let label = UILabel.init(frame: CGRectMake(75, 225, 150, 150))
label.backgroundColor = UIColor.purpleColor()
//2:insertSubview方法有两个作用,1.如果被插入的视图,还未与父视图建立父子视图关系,
//那么插入方法,会把该视图与父视图建立起父子视图关系。
//2.调整视图的层次关系
//把某个视图,插入到下标为4的层级上
// superView.insertSubview(label, atIndex: 1)
//把某个视图,插入到tag=11的视图的上层
// superView.insertSubview(label, aboveSubview: superView.viewWithTag(11)!)
//把某个视图,插入到tag=11的视图的下层
superView.insertSubview(label, belowSubview: superView.viewWithTag(11)!)
//3:表示层数之间进行交换 比如:exchangeSubviewAtIndex:3 withSubviewAtIndex:1 表示第4层和第2层进行交换,当找不到层数时,不会进行交换 (不是指frame.而是指层数) (层数的计算从0开始)
superView.exchangeSubviewAtIndex(0, withSubviewAtIndex: 1)
print(superView.subviews)
}