有很多方法可以做到這一點,許多庫可以幫助你完成這項任務。
我喜歡Bond。
它可讓您觀察屬性值,而不需要didSet
樣板,並幫助您保持代碼清潔。
例如,這不正是你在找什麼:(!反之亦然)
import Bond
let ageSlider = UISlider()
let age = Observable<Float>(0)
ageSlider.bnd_value.bidirectionalBindTo(age)
這有助於你保持MVC或MVVM模式,因爲更改模型屬性也將更新UI的時候了:
age.Value = 18
print(ageSlider.value) // Prints 18
您也可以組合值成一個單一的一個:
let slider1 = UISlider()
let slider2 = UISlider()
let averageValue = combineLatest(slider1.bnd_value, slider2.bnd_value).map{ (v1, v2) in (v1 + v2)/2 }
averageValue.observe { newValue in
print("New average value is \(newValue)")
}
更多的信息在the project page。
VAR myProgressFloat:CGFloat的{ didSet { self.progress = myProgressFloat }} 我 –
撒了謊,你想要的值來更新你的設置和接收的變量都occassions您將需要使用的get/set屬性屬性 –
'var myProgressFloat:CGFloat { get { return slider.value} set(value){slider.value = value}}' –