簡體   English   中英

如何在實際設置之前對 swiftrx 中更改的值做出反應? (就像 willSet 只在 Observable 上一樣)

[英]How to react on a value changed in swiftrx before it is actual set? (Like willSet only on Observable)

我有一個 Switch,它是一個名為switchChangedObservable我可以收聽。

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那樣)。

情況是:

  1. 點擊開關

  2. 聽點擊

  3. 計算是否可以切換開關並顯示微調器

  4. 一種。 如果是,切換開關並結束微調器

    如果不是,不切換開關,顯示錯誤彈出窗口和結束微調器

有誰知道這是否可能?

從理論上講,.touchUpInside控制事件幾乎與您想要覆蓋的情況相匹配,但如果有人將開關拖到開,然后再拖到關,因為它無論如何都會觸發,可能看起來很奇怪。

在我看來,實際上讓它打開,放置一個微調器沒有問題,然后如果不可能,將它返回到關閉狀態並顯示一條消息說你不能這樣做,一點視覺額外不會傷害.

我建議你在這方面積極主動。 與其在用戶嘗試切換檢查它是否可切換,不如此之前進行。 如果用戶無法更改其狀態,則將其userInteractionEnabled設置為 false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM