我想防止我的UIButtons在某个控制流指示准备好之前发出RX tap事件。如果控制流恢复到未准备好状态,我希望按钮再次被禁用。控制序列是一个ReplaySubject
,并且始终具有值。
我已经尝试了skipUntil
,但这是一次性操作 - 一旦控制序列发出,它就不能回到禁用状态 - 所有按钮按下都会被忽略掉控制序列。
如何限制UIButton在某个其他流具有特定值之前不发送tap事件?
let enableButtons = configStatusInputSequence
.filter { (configured, ready) -> Bool in
return configured && ready
}
for button in controlButtons{
button.rx.tap
.skipUntil(enableButtons)
.bind(to: commandOutputSequence)
.disposed(by: bag)
}
isEnabled
属性怎么样?这样按钮就完全无法发出信号了。 - Cristik