RxSwiftを使用してユーザーからの入力を検証しています。すべて有効な場合は、ボタンを有効にしてその色を変更します。私のボタンクラスでは、私はVariable<Bool>
を作成しました:RxSwift検証ボタンの色が正しく設定されていません
initWithCoder
で
var valid = Variable(false)
私はそのようなことをやっている:
valid.asObservable()
.subscribe(onNext: { [weak self] valid in
self?.isEnabled = valid
self?.titleLabel?.textColor = valid ? .white : .black
})
.addDisposableTo(disposeBag)
私は入力を検証し、validateDate()
(私はしませんと呼ばれるObservable<Bool>
を返すメソッドを持っています)簡潔にするために、ここでそれを投稿:
let dataValid = viewModel.validateData()
dataValid
.bind(to: submitButton.valid)
.addDisposableTo(disposeBag)
問題がsubscri中もののvalid
値ということであり、 ptionが正しく、有効化ボタンが完全に機能していれば、ボタンの色を正しく設定すると正しく動作しません。有効になったときではなく、次の発光時に色が変わるようです。true
。
ここで何か問題がありますか?私はどんな助けでも感謝しています。
の賛成でUIBindingObserverを落としていますが、メインスレッド上で色を変更します? – Scriptable
.subscribeの前に.observeOn(MainScheduler.instance)を追加しようとしましたが、うまくいきませんでした。 – jonaszmclaren