2017-04-10 12 views
0

我在RxSwift中遇到了麻烦。像现在我需要更新一个UILabel当一个UIButton被按下时。我认为这是:RxSwift 3文档驱动,绑定和操作

  1. 该按钮需要两个发射按下按钮,并可能映射一些值,两个通道沿着流。
  2. UILabel需要两个订阅直到按钮。

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

+0

你是什么意思'按钮需要两个排放'?您是否告诉我们您希望在点击某物之前将其点击两次,或者您是否告诉我们需要两次排放是您的问题?你能否更详细地解释你的问题是什么,并显示代码片段? – iwillnot

+0

你有没有研究过? https://www.raywenderlich.com/138547/getting-started-with-rxswift-and-rxcocoa –

回答

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可观察
  2. 观察水龙头,每一个水龙头,则将该事件映射到某个字符串
  3. 在我们的示例中,由于我们正在处理UI元素,因此最佳做法是将Observable t o确保排放在主调度器上发生的驱动程序,以及其他优势
  4. 我们用刚刚映射的字符串“驱动”标签的文本。

TL; DR这将每次轻按按钮,这不会有太大的帮助,因为它改变了相同的字符串时设置标签,但你可以应用该技术映射动态字符串等

RxSwift在旅途中祝好运,并随时加入Slack频道,因为有更多的帮助和持续的活动