RxSwift: как выбрать один btn и отменить выбор остальных? [Дубликат]

black_pearl спросил: 07 октября 2018 в 01:44 в: rx-swift

На этот вопрос уже есть ответ здесь:

  • RxSwift and isSelected property on UIButton 1 ответ

У меня есть три 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 здесь уместен.

плохо знаком с RxSwift, как это сделать лучше?

0 ответов