RXSwift-监听UITextField改变按钮状态

单独校验

       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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容