RxSwift 3 文档驱动、绑定和操作

RxSwift 3 documentation driving, binding and actions

我在使用 RxSwift 时遇到问题。就像现在我需要在按下 UIButton 时更新 UILabel。我对此的看法是:

  1. 该按钮需要在按下时发出两次信号,并且可能映射一些值两次向下引导。
  2. UILabel 需要两个订阅按钮。

但是我找不到任何 RxSwift 3.0 或更新版本的文档?

RxSwift,在你的例子中,允许你将事件从一种类型的 Observable 操作到另一种类型。

在这种情况下,你会想做这样的事情:

btnButton.rx.tap // This is a ControlEvent<Void> (you can think of it as Observable<Void> for our purposes
    .map { return "Button was Pressed" } // This is now Observable<String>
    .asDriver(onErrorJustReturn: "") // This is now Driver<String>
    .drive(lblText.rx.text)
    .disposed(by: disposeBag)

让我们一步步过一遍

  1. 您从按钮的 tap Observable
  2. 观察到点击
  3. 对于每次点击,您将该事件映射到某个字符串
  4. 在我们的例子中,由于我们正在处理 UI 元素,因此最佳做法是将 Observable 转换为驱动程序,以确保在主调度程序上发生排放,以及其他好处
  5. 我们 "drive" 标签的文本与我们刚刚映射的字符串。

TL;DR 这会在您每次点击按钮时设置标签,这不会有太大帮助,因为它会更改为相同的字符串,但您可以应用该技术来映射动态字符串等。

祝你在与 RxSwift 的伟大旅程中好运,并随时加入 Slack 频道,因为那里有更多的帮助和持续activity