RxSwift 3 文档驱动、绑定和操作
RxSwift 3 documentation driving, binding and actions
我在使用 RxSwift 时遇到问题。就像现在我需要在按下 UIButton 时更新 UILabel。我对此的看法是:
- 该按钮需要在按下时发出两次信号,并且可能映射一些值两次向下引导。
- 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)
让我们一步步过一遍
- 您从按钮的
tap
Observable 观察到点击
- 对于每次点击,您将该事件映射到某个字符串
- 在我们的例子中,由于我们正在处理 UI 元素,因此最佳做法是将 Observable 转换为驱动程序,以确保在主调度程序上发生排放,以及其他好处
- 我们 "drive" 标签的文本与我们刚刚映射的字符串。
TL;DR 这会在您每次点击按钮时设置标签,这不会有太大帮助,因为它会更改为相同的字符串,但您可以应用该技术来映射动态字符串等。
祝你在与 RxSwift 的伟大旅程中好运,并随时加入 Slack 频道,因为那里有更多的帮助和持续activity
我在使用 RxSwift 时遇到问题。就像现在我需要在按下 UIButton 时更新 UILabel。我对此的看法是:
- 该按钮需要在按下时发出两次信号,并且可能映射一些值两次向下引导。
- 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)
让我们一步步过一遍
- 您从按钮的
tap
Observable 观察到点击
- 对于每次点击,您将该事件映射到某个字符串
- 在我们的例子中,由于我们正在处理 UI 元素,因此最佳做法是将 Observable 转换为驱动程序,以确保在主调度程序上发生排放,以及其他好处
- 我们 "drive" 标签的文本与我们刚刚映射的字符串。
TL;DR 这会在您每次点击按钮时设置标签,这不会有太大帮助,因为它会更改为相同的字符串,但您可以应用该技术来映射动态字符串等。
祝你在与 RxSwift 的伟大旅程中好运,并随时加入 Slack 频道,因为那里有更多的帮助和持续activity