Swift UI 18 視圖的層級(jí)關(guān)系

1:簡(jiǎn)介

1:同一父視圖情況下,后被加入的子視圖,在更上一層
2:子視圖在數(shù)組中排列的順序,就是被添加進(jìn)去的順序

2: 方法

(1):找到任意層的btn,將其放到最外層
bringSubviewToFront

(2): 獲取任意層的btn,將其放到最底層
sendSubviewToBack

(3):insertSubview方法有兩個(gè)作用,1.如果被插入的視圖,還未與父視圖建立父子視圖關(guān)系,那么插入方法,會(huì)把該視圖與父視圖建立起父子視圖關(guān)系。 2.調(diào)整視圖的層次關(guān)系

(4)表示層數(shù)之間進(jìn)行交換 比如:exchangeSubviewAtIndex:3 withSubviewAtIndex:1 表示第4層和第2層進(jìn)行交換,當(dāng)找不到層數(shù)時(shí),不會(huì)進(jìn)行交換 (不是指frame.而是指層數(shù)) (層數(shù)的計(jì)算從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)號(hào)btn", forState: .Normal)
            button.tag = i + 11
            button.titleLabel?.adjustsFontSizeToFitWidth = true
            superView.addSubview(button)

    }

        //同一父視圖情況下,后被加入的子視圖,在更上一層
        //子視圖在數(shù)組中排列的順序,就是被添加進(jìn)去的順序
        
        //1:找到任意層的btn,將其放到最外層
        let btn = superView.viewWithTag(12)
        superView.bringSubviewToFront(btn!)
        
        //獲取任意層的btn,將其放到最底層
        let btn_btn = superView.viewWithTag(13)
        superView.sendSubviewToBack(btn_btn!)

        //插入一個(gè)視圖
        let label = UILabel.init(frame: CGRectMake(75, 225, 150, 150))
        label.backgroundColor = UIColor.purpleColor()
        
        //2:insertSubview方法有兩個(gè)作用,1.如果被插入的視圖,還未與父視圖建立父子視圖關(guān)系,
//那么插入方法,會(huì)把該視圖與父視圖建立起父子視圖關(guān)系。 
//2.調(diào)整視圖的層次關(guān)系
        
        //把某個(gè)視圖,插入到下標(biāo)為4的層級(jí)上
//           superView.insertSubview(label, atIndex: 1)
        
        //把某個(gè)視圖,插入到tag=11的視圖的上層
//            superView.insertSubview(label, aboveSubview: superView.viewWithTag(11)!)

        //把某個(gè)視圖,插入到tag=11的視圖的下層
           superView.insertSubview(label, belowSubview: superView.viewWithTag(11)!)
        
        //3:表示層數(shù)之間進(jìn)行交換  比如:exchangeSubviewAtIndex:3 withSubviewAtIndex:1 表示第4層和第2層進(jìn)行交換,當(dāng)找不到層數(shù)時(shí),不會(huì)進(jìn)行交換 (不是指frame.而是指層數(shù))  (層數(shù)的計(jì)算從0開始)

        superView.exchangeSubviewAtIndex(0, withSubviewAtIndex: 1)
        
        print(superView.subviews)
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容