二十、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)   
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容