單個(gè)textfield校驗(yàn)
nameTextfield.rx.text.orEmpty
.map { $0.count > 1 } // $0代表第一個(gè)參數(shù),就是輸入內(nèi)容必須大于1位
.share(replay: 1)
.subscribe(onNext: {[weak self] (bool) in
self?.loginBut.isEnabled = bool // 修改按鈕是否可以點(diǎn)擊
self?.loginBut.backgroundColor = bool == true ? ThemeBlue : ThemeGreyBlue
}, onError: { (error) in
}, onCompleted: nil, onDisposed: nil)
.disposed(by: disposeBag)
多個(gè)textfield校驗(yàn)
let nameText = nameTextfield.rx.text.orEmpty.map { $0.count > 1 }.share(replay: 1)
let paswdText = paswdTextfield.rx.text.orEmpty.map { $0.count > 5 && $0.count < 18 }.share(replay: 1) // 輸入內(nèi)容必須大于5位且小于18位
Observable
.combineLatest(nameText, paswdText) {$0 && $1}
.share(replay: 1)
.subscribe(onNext: {[weak self] (bool) in
// 修改按鈕是否可以點(diǎn)擊
self?.loginBut.isEnabled = bool
// 修改按鈕背景色
self?.loginBut.backgroundColor = bool == true ? ThemeBlue : ThemeGreyBlue
}, onError: { (error) in
}, onCompleted: nil, onDisposed: nil)
.disposed(by: disposeBag)

輸入前

輸入后