Swift UI 18 视图的层级关系

作者: 前进的苏辰 | 来源:发表于2016-08-26 13:53 被阅读0次

    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)
      }
    

    相关文章

      网友评论

        本文标题:Swift UI 18 视图的层级关系

        本文链接:https://www.haomeiwen.com/subject/cbczsttx.html