ReactiveX和RxSwift
ReactiveX: Rx 是一個可以幫助我們簡化異步編程的框架。
RxSwift 是Rx的 Swift 版本。
CocoaPods導(dǎo)入
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'RxSwift', '~> 5.0'
pod 'RxCocoa', '~> 5.0'
end
使用RxSwift的目的
- 復(fù)合 - Rx 就是復(fù)合的代名詞
- 復(fù)用 - 因為它易復(fù)合
- 清晰 - 因為聲明都是不可變更的
- 易用 - 因為它抽象的了異步編程,使我們統(tǒng)一了代碼風(fēng)格
- 穩(wěn)定 - 因為 Rx 是完全通過單元測試的
例1:UIButton的點擊事件
button.rx.tap
.subscribe(onNext: {
print("button Tapped")
})
.disposed(by: disposeBag)
例2:代理
class ViewController: UIViewController {
...
override func viewDidLoad() {
super.viewDidLoad()
scrollView.rx.contentOffset
.subscribe(onNext: { contentOffset in
print("contentOffset: \(contentOffset)")
})
.disposed(by: disposeBag)
}
}