Reputation: 392
I need to bind slider.rx.value
to 2 observers with different mappings.
slider.rx.value.map { [unowned self] in self.formatter.string(from: NSNumber(value: $0)) ?? "" }
.bindTo(textFieldAlpha.rx.text)
.addDisposableTo(disposeBag)
slider.rx.value.map { Enhance.Global(alpha: $0) }
.bindTo(enhance)
.addDisposableTo(disposeBag)
But i seems that only last binding works. How to achieve this?
Upvotes: 5
Views: 5958
Reputation: 2774
Does this accomplish what you want?
let observable = slider.rx.value.shareReplay(1)
observable.map { [unowned self] in self.formatter.string(from: NSNumber(value: $0)) ?? "" }
.bindTo(textFieldAlpha.rx.text)
.disposed(by: disposeBag)
observable.map { Enhance.Global(alpha: $0) }
.bindTo(enhance)
.disposed(by: disposeBag)
Alternative if you do not need the buffer
let observable = slider.rx.value.share()
Here is also a link to a nice cheat sheet for RxSwift https://www.cheatography.com/donghua-li/cheat-sheets/rxswift-operators/
Upvotes: 7