RxSwift干货RxSwift

30天学RxSwift-ControlEventType与Con

2016-04-10  本文已影响1083人  Linqingmo

相信许多人学习iOS编程都是从UILabel与UIButton、UITextField等简单的控件开始的。点击按钮产生效果、输入文字显示出来等。

今天就来看一下怎么实现点击按钮。

先了解一下,ControlEventType与ControlEvent。依Swift的命名规范,以Type结尾的多数是表示某种类型的Protocol。ControlEventType继承自ObservableType,因此ControlEventType是可以直接订阅的。多余的不解释了,直接来看一下怎么使用,在使用中学习最有效。最近工作很忙,没时间学习,只能抽小部分时间写写代码,但还是挺有收获的,可以慢慢将自己的项目切换到响应式编程了。

在RxCocoa中给UIButton添加了rx_tap属性。粘一段代码上来。

var disposeBag = DisposeBag()

let btn = UIButton(type: .Custom)

btn.rx_tap

  .subscribeNext {

    print("tap")

  }

  .addDisposableTo(disposeBag)

这里实现了很简单的功能,点击按钮的时候打印一下。但是还是可以帮我们优化我们的代码结构。再也不用写addTaget...这样麻烦的代码了。在Swift2.2之前,写addTaget可能还会有隐性的坑,因为方法是用字面量写的,没有代码提示,一不小心写错了可能在测试中还没测出来。

最初接触到Rx框架的时候也是兴冲冲地将按钮点击都用rx_tap来替换掉。虽然很粗浅,但是个很好的开始。

如果要实现点击按钮将字符串显示在label上呢?最先想到的是在subscribeNext中赋值就好。但还有更优雅的方式,将在下一篇中讲到。

上一篇下一篇

猜你喜欢

热点阅读