RxSwift:基于文本字段的启用/禁用按钮不为空
发布时间:2020-12-14 02:27:43 所属栏目:百科 来源:网络整理
导读:我必须使用Rx Swift根据两个文本字段上的字符数启用一个按钮 @IBOutlet weak var userTextField: UITextField!@IBOutlet weak var passwordTextField: UITextField!@IBOutlet weak var buttonToEnableDisable: UIButton!var enabledObservable = combineLate
我必须使用Rx
Swift根据两个文本字段上的字符数启用一个按钮
@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,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)
如果我理解正确,你可能想要这样的东西
let loginValidation = loginTextFiled .rx_text .map({!$0.isEmpty}) .shareReplay(1) let userNameValidation = passwordTextField .rx_text .map({!$0.isEmpty}) .shareReplay(1) let enableButton = combineLatest(loginValidation,userNameValidation) { (login,name) in return login && name } enableButton .bindTo(loginButton.rx_enabled) .addDisposableTo(disposeBag) 有关详细信息,我建议您查看RxExamples 在那里你可以找到很多常见问题的答案.玩得开心=) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ORACLE字符类型详解----char、nchar、varchar、varchar2、n
- ios – Xcode6 beta4的问题
- sprite-kit – 将背景颜色淡入另一种颜色的替代方法
- swift – 在XCode更新到6.3之后,’window’类型具有与协议’
- MediaPlayer/MediaPlayer 视频播放
- c – MS Access中的NZ功能的ADO等价物?
- Swift 函数的定义与调用(Defining and Calling Functions)
- xml – 在Windows 8上的visual studio 2013中找到xsd.exe的
- 具有多个连接的SQLite查询
- cocos2d-x 动画速度的控制