在实际设置swiftrx之前,如何对swiftrx中更改的值作出反应?(如仅在可观察状态下设定)

在实际设置swiftrx之前,如何对swiftrx中更改的值作出反应?(如仅在可观察状态下设定),swift,rx-swift,Swift,Rx Swift,我有一个开关,它是一个可观察的,叫做switchChanged,我可以听 扩展,其中。。。{ lazy-var-toggleSwitch:UISwitch={…} 变量:可观察{ 返回切换开关.rx .controlEvent(.valueChanged) .withLatestFrom(toggleSwitch.rx.value) } 我想听听.rx.switchChanged或.rx.toggleSwitch.isOn,但是之前,它们实际上改变了它们的值(正如将设置的那样) 情况将是: 点

我有一个开关,它是一个
可观察的
,叫做
switchChanged
,我可以听

扩展,其中。。。{
lazy-var-toggleSwitch:UISwitch={…}
变量:可观察{
返回切换开关.rx
.controlEvent(.valueChanged)
.withLatestFrom(toggleSwitch.rx.value)
}
我想听听
.rx.switchChanged
.rx.toggleSwitch.isOn
,但是之前,它们实际上改变了它们的值(正如
将设置的那样)

情况将是:

  • 点击开关

  • 听点击

  • 计算是否可以切换开关并显示微调器

  • a、 如果是,则切换开关和结束微调器

    b、 如果否,则不切换开关,显示错误弹出窗口和结束微调器

  • 有人知道这是否可能吗?

    理论上,控制事件将几乎与您要讨论的情况相匹配,但如果有人将开关拖到on,然后再拖回off,则可能看起来很奇怪,因为它无论如何都会触发


    在我看来,实际上让它打开,放一个微调器,然后如果不可能,将它返回到关闭状态,并显示一条消息说你不能这样做,一点额外的视觉效果并没有坏处。

    我建议你对此采取主动。而不是在用户尝试切换I后检查它是否可以切换t、 如果用户无法更改其状态,请将其
    userInteractionEnabled
    设置为false