美文网首页
RXSwift-监听UITextField改变按钮状态

RXSwift-监听UITextField改变按钮状态

作者: SK丿希望 | 来源:发表于2018-03-02 11:17 被阅读0次

单独校验

       oldpwdTF.rx.text.orEmpty
            .map { $0.count >5  } // 输入内容必须大于5位
            .share(replay: 1)
            .subscribe(onNext: {[weak self] (bool) in
                self?.changePasswordButton.isEnabled = bool // 修改按钮是否可以点击
                self?.changePasswordButton.backgroundColor =  bool == true ?  HWMainBarColor() :  HWLineColor()
                }, onError: { (error) in 
            }, onCompleted: nil, onDisposed: nil)
            .disposed(by: disposeBag)

联合校验

        /// 检验旧密码
        let oldpwdValid = oldpwdTF.rx.text.orEmpty
            .map { $0.count >5  } // 输入内容必须大于5位
            .share(replay: 1)
        /// 检验新密码
        let newpwdValid = newpwdTF.rx.text.orEmpty
            .map { $0.count > 5 && $0.count < 21 } // 输入内容必须大于5位 小于20
            .share(replay: 1)
        /// 检验确认密码
        let confirmpwdValid = confirmpwdTF.rx.text.orEmpty
            .map { $0.count > 5 && $0.count < 21} // 输入内容必须大于5位 小于20
            .share(replay: 1)
        /// 组合检验
        Observable
            .combineLatest(oldpwdValid, newpwdValid, confirmpwdValid) {$0&&$1&&$2}
            .share(replay: 1)
            .subscribe(onNext: {[weak self] (bool) in
                self?.changePasswordButton.isEnabled = bool // 修改按钮是否可以点击
                self?.changePasswordButton.backgroundColor =  bool == true ?  HWMainBarColor() :  HWLineColor()
                }, onError: { (error) in   
            }, onCompleted: nil, onDisposed: nil)
            .disposed(by: disposeBag)

相关文章

网友评论

      本文标题:RXSwift-监听UITextField改变按钮状态

      本文链接:https://www.haomeiwen.com/subject/ogzoxftx.html