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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作为一个iOS开发人员, 当Swift遇上了RxSwift --> 函数响应式编程,在没有认识RxSwift之前,...
    smart_M阅读 1,898评论 0 2
  • RxSwift 中的 Observable 是观察者模式中被观察到对象,相当于一个事件序列,会主动向订阅者发送新产...
    kled_net阅读 2,312评论 0 1
  • 前言 写这篇文章是为了记录下自己在对于RxSwift的学习过程中的概念理解,操作步骤以及心得体会,以便于在以后复习...
    Henry_Jeannie阅读 3,222评论 0 3
  • 就问此时此刻还有谁?45度仰望天空,该死!我这无处安放的魅力!RxSwift(1)—— 初探RxSwift(2)—...
    Cooci_和谐学习_不急不躁阅读 10,190评论 10 34
  • 残梦未醒已天明, 天明无聊看楼群。 楼群连天望不尽, 不尽夜幕又降临。 降临满城皆灯火, 灯火映照见秃影。 秃树落...
    五鸽阅读 1,274评论 0 2