我必须使用 RxSwift 根据两个文本字段上的字符数启用一个按钮
@IBOutlet weak var userTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var buttonToEnableDisable: UIButton!
var enabledObservable = combineLatest(userTextField.rx_text, passwordTextField.rx_text)
{ (user,password) in
self.loginButton.enabled = a.characters.count > 0 && b.characters.count > 0
}
最后我通过这样做来完成,但我不确定它是否是最好的方法:
_ = combineLatest(emailTextField.rx_text, passwordTextField.rx_text) { (a: String, b:String) in
self.loginButton.enabled = (a.characters.count > 0 && b.characters.count > 0)
}.subscribeNext { (result) -> Void in
}
编辑最终版本:
_ = combineLatest(emailTextField.rx_text, passwordTextField.rx_text) { (a: String, b:String) in
return (a.characters.count > 0 && b.characters.count > 0)
}.subscribeNext { enabled in
self.loginButton.alpha = enabled ? 1 : 0.5
self.loginButton.enabled = enabled
}
.addDisposableTo(disposeBag)