是否可以同时绑定两个观察者?

is it possible to bind two observer at once?

喜欢:

btn.rx.tap
   .bind(to: ViewA.rx.isHidden && ViewB.rx.isHidden)
   .disposed(by: disposeBag)

所以一旦我点击 btn,ViewA 和 ViewB 就同时隐藏了! 可能吗?

isHidden requires Bool, so first, you need to convert your tapBool。回答您的问题 - 以下是您可以执行的操作:

btn.rx.tap
    .map { _ in true }
    .bind(onNext: { value in
        ViewA.isHidden = value
        ViewB.isHidden = value
    }).disposed(by: disposeBag)

let hiddenStatus = BehaviorRelay(value: false)

btn.rx.tap
    .map { _ in true }
    .bind(to: hiddenStatus)
    .disposed(by: disposeBag)

hiddenStatus.bind(to: ViewA.rx.isHidden).disposed(by: disposeBag)
hiddenStatus.bind(to: ViewB.rx.isHidden).disposed(by: disposeBag)

并不像 SaikO 的回答那样真正需要中间 BehaviorRelay。只需绑定两次:

btn.rx.tap
   .bind(to: ViewA.rx.isHidden)
   .disposed(by: disposeBag)

btn.rx.tap
   .bind(to: ViewB.rx.isHidden)
   .disposed(by: disposeBag)

使用 RxSwift 5,您几乎可以按照您认为应该的方式进行操作:

button.rx.tap
    .map { true }
    .bind(to: viewA.rx.isHidden, viewB.rx.isHidden)
    .disposed(by: bag)