美文网首页Swift开发
RxSwift基本使用

RxSwift基本使用

作者: CN_HarrySun | 来源:发表于2018-12-05 11:14 被阅读3次

    登陆限制最小字数并绑定使用

    let usernameOutlet = UITextField()
    let passwordOutlet = UITextField()
    let doSomethingButton = UIButton(type: .custom)
    
    let usernameValid = usernameOutlet.rx.text.orEmpty
        // 用户名 -> 用户名是否有效
        .map { $0.count >= 5 }  // 判断usernameOutlet中的文字个数是否大于5
        .share(replay: 1)
    
    let passwordValid = passwordOutlet.rx.text.orEmpty
        // 密码 -> 密码是否有效
        .map { $0.count >= 5 }  // 判断passwordOutlet中的文字个数是否大于5
        .share(replay: 1)
    
    // 控制是否可输入
    usernameValid
            .bind(to: passwordOutlet.rx.isEnabled)
            .disposed(by: DisposeBag())
    
    // 控制是否隐藏
    usernameValid
        .bind(to: passwordOutlet.rx.isHidden)
        .disposed(by: DisposeBag())
    
    
    // 合并成一个信号
    let everythingValid = Observable.combineLatest(
        usernameValid,
        passwordValid
    ) { $0 && $1 }
        .share(replay: 1)
    
    // 所有输入是否有效 -> 按钮是否可点击
    everythingValid
        .bind(to: doSomethingButton.rx.isEnabled)
        .disposed(by: DisposeBag())
    
    doSomethingButton.rx.tap
        .subscribe(onNext: { (_) in
            print("点击doSomethingButton")
        })
        .disposed(by: DisposeBag())
    
    
    
    

    相关文章

      网友评论

        本文标题:RxSwift基本使用

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