我有一个开关,它是一个名为Observable
的switchChanged
,我可以听。
extension Reactive where ... {
lazy var toggleSwitch: UISwitch = {...}
var switchChanged: Observable<Bool> {
return toggleSwitch.rx
.controlEvent(.valueChanged)
.withLatestFrom(toggleSwitch.rx.value)
}
我想听听..rx.switchChanged
或..rx.toggleSwitch.isOn
,但是在之前实际上改变了它们的值(就像willSet
那样)。
设想的情况是:
有人知道这是否可能吗?
发布于 2020-03-10 07:00:37
理论上,.touchUpInside控制事件将几乎与您想要覆盖的情况相匹配,但是如果有人将开关拖到打开,然后又回到关闭状态,那么它可能会看起来很奇怪,因为它无论如何都会触发。
在我看来,实际上让它打开,设置一个旋转器没有问题,如果不可能的话,用一条消息返回到关闭状态,上面写着你不能这样做,一点视觉上的额外功能也不会有什么影响。
发布于 2020-03-11 17:14:38
我建议你对此采取积极主动的态度。与其在用户尝试切换之后检查它是否可切换,不如在此之前进行。如果用户无法更改其状态,则将其userInteractionEnabled
设置为false。
https://stackoverflow.com/questions/60618079
复制