ReactiveX和RxSwift
ReactiveX: Rx 是一個(gè)可以幫助我們簡(jiǎn)化異步編程的框架。
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ù)用 - 因?yàn)樗讖?fù)合
- 清晰 - 因?yàn)槁暶鞫际遣豢勺兏?/li>
- 易用 - 因?yàn)樗橄蟮牧水惒骄幊?,使我們統(tǒng)一了代碼風(fēng)格
- 穩(wěn)定 - 因?yàn)?Rx 是完全通過單元測(cè)試的
例1:UIButton的點(diǎn)擊事件
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)
}
}