Swift UI 18 視圖的層級關系

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)
  }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容