RxSwift-初識

RxSwift簡介

  • ReactiveX(簡寫:Rx 全寫:Reactive Extension)是一個(gè)可以幫助我們簡化異步編程的框架
  • RxSwift是Rx系中的Swift版本
  • RxSwift是函數(shù)響應(yīng)式(FRP)框架,與Swift語法特性相結(jié)合,簡直不要太NB!
    函數(shù)式:形如數(shù)學(xué)中的y=f(x),其中f為函數(shù),自變量x又可以為一個(gè)函數(shù)表達(dá)式f(x),即y=f(f(x))
    響應(yīng)式:舉個(gè)例子,就是哥哥上二年紀(jì),弟弟一年級,等哥哥三年紀(jì)的時(shí)候,弟弟也會(huì)變成二年級,哥哥的變化也會(huì)伴隨著弟弟的變化,大概就是這個(gè)意思吧

RxSwift API初體驗(yàn)

Button的使用
func learButton() {
    button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
    
    button.rx.tap
        .subscribe(onNext: { [weak self] in
            print("點(diǎn)擊了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("點(diǎn)了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)
}

還有什么是一句代碼解決不了的事,如果有,那就再加一行?。?!

生活如此美好,今天就點(diǎn)到為止。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作為一個(gè)iOS開發(fā)人員, 當(dāng)Swift遇上了RxSwift --> 函數(shù)響應(yīng)式編程,在沒有認(rèn)識RxSwift之前,...
    smart_M閱讀 369評論 0 2
  • RxSwift 中的 Observable 是觀察者模式中被觀察到對象,相當(dāng)于一個(gè)事件序列,會(huì)主動(dòng)向訂閱者發(fā)送新產(chǎn)...
    kled_net閱讀 344評論 0 1
  • 前言 寫這篇文章是為了記錄下自己在對于RxSwift的學(xué)習(xí)過程中的概念理解,操作步驟以及心得體會(huì),以便于在以后復(fù)習(xí)...
    Henry_Jeannie閱讀 514評論 0 3
  • 就問此時(shí)此刻還有誰?45度仰望天空,該死!我這無處安放的魅力!RxSwift(1)—— 初探RxSwift(2)—...
  • 殘夢未醒已天明, 天明無聊看樓群。 樓群連天望不盡, 不盡夜幕又降臨。 降臨滿城皆燈火, 燈火映照見禿影。 禿樹落...
    五鴿閱讀 199評論 0 2

友情鏈接更多精彩內(nèi)容