二十、Swift3.0之利用模型的didSet设置UI

模型

class Person: NSObject {
    var name: String?
}

自定义控件

class DemoLabel: UILabel {
    //给视图设置模型,由视图自己根据模型的数据,决定显示内容
    var person: Person?{
        //就是替代OC中重写setter方法
        //区别:再也不需要考虑 _成员变量 = 值
        didSet{
            //此时name属性已经有值,可以直接使用设置UI界面
            text = person?.name
        }
    }
    
}

控制器

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
       let p = Person()
        p.name = "label"
        
        let label = DemoLabel(frame:CGRect(x: 40, y: 100, width: 100, height: 30))
        //调用person的didSet方法
        label.person = p
        view.addSubview(label)   
    }
}

你可能感兴趣的:(二十、Swift3.0之利用模型的didSet设置UI)