【发布时间】:2018-11-01 03:24:27
【问题描述】:
我有三个 btns,选择一个,其余两个取消选择。
下面的 RXSwift 代码不是很优雅。
twoBtn.isSelected = true
// the btns
let buttons = [oneBtn, twoBtn, threeBtn]
// find the selected btn we need
let selectedBtn : Observable<UIButton?> = Observable.from(buttons.map({ (button) in
return button!.rx.tap.map({
return button
})
})).merge()
// every btn subscribe to the selectedButton
for buttonPiece in buttons{
selectedBtn.map { (btn) in
return btn == buttonPiece
}.bind(to: buttonPiece!.rx.isSelected).disposed(by: disposeBag)
}
BehaviorSubject 以一个初始值开始,它们会重播最新的值或初始值。
我认为 BehaviorSubject 在这里是合适的。
RxSwift 新手,如何做得更好?
【问题讨论】:
-
这个问题属于 (codereview.stackexchange.com),这是针对需要“更优雅”的代码。 :-)