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

时间:2017-04-10 10:48:21

标签: rx-swift

我无法在RxSwift中找到自己的方式。就像现在我需要在按下UIButton时更新UILabel。我对此的看法是:

  1. 按下需要两个发射按钮,并且可以映射一些值,两个沿着流向下传输。
  2. UILabel需要两个订阅按钮。
  3. 但我找不到RxSwift 3.0或更新的任何文档?

1 个答案:

答案 0 :(得分:2)

在您的情况下,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. 我们用刚刚映射的字符串“驱动”标签的文本。
  6. TL; DR这会在每次点击按钮时设置标签,这对于更改为相同的字符串没有多大帮助,但您可以应用该技术来映射动态字符串等。

    祝你在RxSwift的伟大旅程中好运,并随时加入Slack频道,因为那里有更多的帮助和正在进行的活动