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中赋值就好。但还有更优雅的方式,将在下一篇中讲到。