美文网首页swift
swift中UIView的使用

swift中UIView的使用

作者: 不安分心 | 来源:发表于2016-12-18 20:13 被阅读0次

    UIView的相关操作

    import UIKit
    
    class MainViewController: UIViewController {
    
        // 创建全局的view
        var myView: UIView?
        
        
        override func viewDidLoad() {
            super.viewDidLoad()
            
            self.view.backgroundColor = UIColor.red
            
            self.setupView()
            
        }
        
        func setupView() {
            // 创建一个view
            let view = UIView(frame: CGRect(x: 10, y: 50, width: 100, height: 100))
            view.center = CGPoint(x: 100, y: 100)
            view.backgroundColor = UIColor.orange
            self.view.addSubview(view)
            
            // 移除subView
            myView?.removeFromSuperview()
            // 添加subView
            myView?.addSubview(view)
            
            //MARK: view的层级关系
            // 将subView往前移动一个图层(与它的前一个图层对调位置)
            self.view.bringSubview(toFront: myView!)
            // 将subView往后移动一个图层(与它的后一个图层对调位置)
            self.view.sendSubview(toBack: myView!)
            
            // 使用subView的变数名称取得它在UIView中的索引值(index)
            let index = self.view.subviews.index(of: myView!)
            
            // 使用索引index交换两个subView之间的层级
            let index1: Int = 0
            let index2: Int = 1
            self.view.exchangeSubview(at: index1, withSubviewAt: index2)
            
            // 给view加上标记
            myView?.tag = 1000
            // 通过标记tag得到view
            let otherView = UIView().viewWithTag(1000)
            
            // 返回一个数组
            UIView().subviews
            
        }
    }
    

    只定义UIView

    import UIKit
    
    class SubView: UIView {
    
        // 重新父类的init方法
        // 指定初始化器
        override init(frame: CGRect) {
            super.init(frame: frame)
    
        }
        // 必要初始化期
        /**
         为什么一定要添加:
         这是NSCoding protocol定义的,遵守了NSCoding protoaol的所有类必须继承。只是有的情况会隐式继承,而有的情况下需要显示实现。
         
         什么情况下要显示添加:
         当我们在子类定义了指定初始化器(包括自定义和重写父类指定初始化器),那么必须显示实现required init?(coder aDecoder: NSCoder),而其他情况下则会隐式继承,我们可以不用理会。
         
         什么情况下会调用:
         当我们使用storyboard实现界面的时候,程序会调用这个初始化器。
         注意要去掉fatalError,fatalError的意思是无条件停止执行并打印。
         在obj-c中可以通过下面代码实现
         
         */
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
        
    }
    

    相关文章

      网友评论

        本文标题:swift中UIView的使用

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