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