登陸限制最小字?jǐn)?shù)并綁定使用
let usernameOutlet = UITextField()
let passwordOutlet = UITextField()
let doSomethingButton = UIButton(type: .custom)
let usernameValid = usernameOutlet.rx.text.orEmpty
// 用戶(hù)名 -> 用戶(hù)名是否有效
.map { $0.count >= 5 } // 判斷usernameOutlet中的文字個(gè)數(shù)是否大于5
.share(replay: 1)
let passwordValid = passwordOutlet.rx.text.orEmpty
// 密碼 -> 密碼是否有效
.map { $0.count >= 5 } // 判斷passwordOutlet中的文字個(gè)數(shù)是否大于5
.share(replay: 1)
// 控制是否可輸入
usernameValid
.bind(to: passwordOutlet.rx.isEnabled)
.disposed(by: DisposeBag())
// 控制是否隱藏
usernameValid
.bind(to: passwordOutlet.rx.isHidden)
.disposed(by: DisposeBag())
// 合并成一個(gè)信號(hào)
let everythingValid = Observable.combineLatest(
usernameValid,
passwordValid
) { $0 && $1 }
.share(replay: 1)
// 所有輸入是否有效 -> 按鈕是否可點(diǎn)擊
everythingValid
.bind(to: doSomethingButton.rx.isEnabled)
.disposed(by: DisposeBag())
doSomethingButton.rx.tap
.subscribe(onNext: { (_) in
print("點(diǎn)擊doSomethingButton")
})
.disposed(by: DisposeBag())