У меня есть два свойства BOOL в моем VC.swift:Как наблюдать свойства Bool с помощью RxSwift?
var isRecording = false
var isPlaying = false
В методе viewDidLoad() У меня есть такой код:
let observable = Observable.combineLatest(self.rx_observe(Bool.self, "isRecording"), self.rx_observe(Bool.self, "isPlaying")) { (val1, val2) -> Void in
if(val1 == false && val2 == false){
self.recordButton.enabled = true
self.playButton.enabled = true
self.recordButton.setImage(UIImage(named: "record"), forState: UIControlState.Normal)
self.playButton.setImage(UIImage(named: "play"), forState: UIControlState.Normal)
} else if(val1 == true && val2 == false){
self.recordButton.enabled = true
self.recordButton.setImage(UIImage(named: "stop"), forState: UIControlState.Normal)
self.playButton.enabled = false
} else if(val1 == false && val2 == true){
self.recordButton.enabled = false
self.playButton.enabled = true
self.playButton.setImage(UIImage(named: "stop"), forState: UIControlState.Normal)
self.recordButton.setImage(UIImage(named: "record"), forState: UIControlState.Normal)
}
}.observeOn(MainScheduler.instance)
addSubscription(observable.subscribe())
Функция addSubscription (: _) добавляет подписку на DisposableBag. Проблема в том, что код в закрытии работает только один раз. Он не работает, когда изменяются свойства «isRecording» и «isPlaying». Что делать, если я хочу, чтобы этот код выполнялся после изменения этих свойств bool?
Изменение этих свойств при изменении статуса, я подразумеваю, что воспроизведение или запись закончится и начнется снова. Вы реализовали его в viewdidload, поэтому он вызывается только один раз, когда он загружается. – Lion