代码之家  ›  专栏  ›  技术社区  ›  Bartłomiej Semańczyk

如何在使用RXSwift验证的基础上更改UIButton的isEnabled和alpha属性?

  •  1
  • Bartłomiej Semańczyk  · 技术社区  · 7 年前

    这就是我试图通过以下方式实现的目标:

    let observable = Observable.combineLatest(loginProperty.asObservable(), passwordProperty.asObservable()) { _,_ in
        self.viewModel.isValid
    }
    observable.bind(to: mainView.loginButton.rx.isEnabled).disposed(by: disposeBag)
    //observable.bind(to: mainView.loginButton.rx.alpha).disposed(by: disposeBag)
    

    但这只限于 isEnabled 财产。我也想改变我的阿尔法 loginButton . 我该怎么做?

    1 回复  |  直到 7 年前
        1
  •  6
  •   Jaydeep Vora    7 年前

    必须编写反应性扩展来绑定属性。

    extension Reactive where Base : UIButton {
        public var valid : Binder<Bool> {
            return Binder(self.base) { button, valid in
                button.isEnabled = valid
                button.alpha = 0.5 // You Value as per valid or not
            }
        }
    }
    

    然后这样写来检查可观测值

    observable.bind(to: mainView.loginButton.rx.valid).disposed(by: disposeBag)
    
    推荐文章