RxSwift-初识
2020-01-03 本文已影响0人
lmfei
RxSwift简介
- ReactiveX(简写:Rx 全写:Reactive Extension)是一个可以帮助我们简化异步编程的框架
- RxSwift是Rx系中的Swift版本
- RxSwift是函数响应式(FRP)框架,与Swift语法特性相结合,简直不要太NB!
函数式:形如数学中的y=f(x),其中f为函数,自变量x又可以为一个函数表达式f(x),即y=f(f(x))
响应式:举个例子,就是哥哥上二年纪,弟弟一年级,等哥哥三年纪的时候,弟弟也会变成二年级,哥哥的变化也会伴随着弟弟的变化,大概就是这个意思吧
RxSwift API初体验
Button的使用
func learButton() {
button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
button.rx.tap
.subscribe(onNext: { [weak self] in
print("点击了button")
self?.button.backgroundColor = UIColor.blue
})
.disposed(by: disposeBag)
}
TestField的使用
func learTextField() {
textField.rx.text.orEmpty.changed.subscribe(onNext: { (text) in
print(text)
}).disposed(by: disposeBag)
textField.rx.text.bind(to: button.rx.title()).disposed(by: disposeBag)
}
ScrollView的使用
func learnScroll() {
scrollView.rx.contentOffset
.subscribe(onNext: { (point) in
print(point)
})
.disposed(by: disposeBag)
}
KVO的使用
func learKVO() {
self.personal.rx.observeWeakly(String.self, "name")
.subscribe(onNext: { (value) in
print(value!)
})
.disposed(by: disposeBag)
}
Notification的使用
func learNotification() {
NotificationCenter.default.rx.notification(UIResponder.keyboardWillShowNotification)
.subscribe(onNext: { (event) in
print(event)
})
.disposed(by: disposeBag)
}
GestureRecognizer的使用
func learGestureRecognizer() {
let tap = UITapGestureRecognizer()
lab.isUserInteractionEnabled = true
lab.addGestureRecognizer(tap)
tap.rx.event.subscribe {
(event) in
print("点了lab")
}.disposed(by: disposeBag)
}
Timer的使用
func learTimer() {
let timer:Observable<Int> = Observable<Int>.interval(1, scheduler: MainScheduler.instance)
timer.subscribe(onNext: { (num) in
print(num)
}).disposed(by: disposeBag)
}
还有什么是一句代码解决不了的事,如果有,那就再加一行!!!
生活如此美好,今天就点到为止。。。