如何在 RxSwift 中将 UISwitch 绑定到 UIButton 启用?

Posted

技术标签:

【中文标题】如何在 RxSwift 中将 UISwitch 绑定到 UIButton 启用?【英文标题】:How to bind UISwitch to UIButton enable in RxSwift? 【发布时间】:2016-05-27 10:39:57 【问题描述】:

我有一个UISwitch,需要选择它才能继续进入下一个表单屏幕。所以我想将选中的UISwitch 绑定到启用的UIButton。我就是不能让这个样本继续下去。

这是我正在尝试但未编译的内容:

let termsValidation = termsSwitch
    .rx_selected
    .shareReplay(1)

termsValidation
    .bindTo(signupButton.rx_enabled)
    .addDisposableTo(disposeBag)

什么是让它在 RxSwift 和 RxCocoa 中工作的正确方法?

【问题讨论】:

【参考方案1】:

您应该使用rx_value 而不是rx_selected

【讨论】:

【参考方案2】:
    let termsValidation = termsSwitch
            .rx.value
            .shareReplay(1)

    termsValidation
        .bind(to: signupButton.rx.isEnabled)
        .addDisposableTo(disposeBag)

【讨论】:

以上是关于如何在 RxSwift 中将 UISwitch 绑定到 UIButton 启用?的主要内容,如果未能解决你的问题,请参考以下文章

RxSwift之UI控件UISwitch与UISegmentedControl扩展的使用

没有绑定器的 RxSwift 自定义数据类型转换

如何在 RxSwift 中将值附加到观察到的数组

如何在 RxSwift 中将多个数据模型绑定到 TableView

如何在 Swift 中将值从自定义单元格设置/传递到视图控制器

在 RxSwift 中将 [Observable<T>] 转换为 Observable<[T]>