如何使用RXSwift将对象的属性绑定到UIlabel?

时间:2019-10-04 06:31:30

标签: swift rx-swift

我有一个Model类,如下所示:

class Model{
    var currentTemparature:String?
    var minTemparature:String?
    var maxTemparature:String?

    init(currentTemparature:String,minTemparature:String,maxTemparature:String) {
        self.currentTemparature = currentTemparature
        self.maxTemparature = maxTemparature
        self.minTemparature = minTemparature
    }
}

我想使用RXSwift将这些属性中的每一个绑定到ViewController中的UILabel。

例如:

class ViewController:UIViewController{
    @IBOutlet var currentTemparatureLabel: UILabel!
    @IBOutlet var minTemparatureLabel: UILabel!
    @IBOutlet var maxTemparatureLabel: UILabel!

    func UpdateLabels(){
        let model = Model.init(currentTemparature: "25", minTemparature: "20", maxTemparature: "30")
        currentTemparatureLabel.text = model.currentTemparature
        minTemparatureLabel.text = model.minTemparature
        maxTemparatureLabel.text = model.maxTemparature
    }
}

只要模型属性的值发生变化,我都想更新标签。我该如何实现?

1 个答案:

答案 0 :(得分:0)

您应该拥有一个数据模型的Observable(例如,可以从服务器获取),然后,您可以使用.bind(yourlabel.rx.text)将其结果直接绑定到标签上。

该值每次更改都会通过绑定到标签来更新您的视图