How to bind multiple observers to one ControlProperty

浪子不回头ぞ 提交于 2019-12-10 10:18:08

问题


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?


回答1:


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/



来源:https://stackoverflow.com/questions/40766206/how-to-bind-multiple-observers-to-one-controlproperty

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!