014--利用模型的didSet屬性給UI賦值

**注:其實就是相當於在一個View中實現其中的一個屬性的set方法,該屬性通過set方法將值傳進來,然後我們獲取到該值,將該值得內容付給View.**

上Swift代碼:

首先建立模型:

//
//  Person.swift
//  Swift設置模型數據
//

import UIKit

class Person: NSObject {
    var name:String?
}

然後建立一個label

//
//  DemoLabel.swift
//  Swift設置模型數據

import UIKit

class DemoLabel: UILabel {
    //模型->給視圖設置模型,由駛入根據自己模型的數據,顯示內容
    var person:Person?{
        //***就是替代OC中重寫set方法
        //區別:再也不需要考慮 _成員變量 = 值
        //OC中如果是copy屬性,應該  _成員變量 = 值.copy
        didSet{
            //此時name屬性已經有值,可以直接設置給label.text
            text = person?.name
        }
    }
}

最後調用,給Label的person模型賦值

//
//  ViewController.swift
//  Swift設置模型數據

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let p = Person()
        p.name = "笑話"

        let label = DemoLabel(frame: CGRect(x: 20, y: 40, width: 100, height: 40))

        view.addSubview(label)

        //將模型設置給label
        label.person = p
    }

}
發佈了229 篇原創文章 · 獲贊 832 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章