RxSwift-初识

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 = Observable.interval(1, scheduler: MainScheduler.instance)
    timer.subscribe(onNext: { (num) in
        print(num)
    }).disposed(by: disposeBag)
}

还有什么是一句代码解决不了的事,如果有,那就再加一行!!!

生活如此美好,今天就点到为止。。。

你可能感兴趣的:(RxSwift-初识)