RxSwift常见用法(一)

作者: ptlCoder | 来源:发表于2017-12-27 17:42 被阅读108次

      RxSwiftReactiveCocoa 的swift版本,是一种函数式响应编程的框架。RxSwift遵循Functional Reactive Programming(FRP)的设计规范,其目的是通过类似于信号流或者观察者的方式来实现代码的逻辑运算,使代码更加的简洁、明了。
      第一次用RxSwift你会感觉和OC版本的ReactiveCocoa有很大的区别,基本上改了个底朝天。


    先上代码,可以自行下载

    github代码.


    注意:

    当你使用RxSwift的时候有时候没有代码提示,这个时候你要校验一下使用的对象,否则就敲后面方法的时候就没有提示。是不是很蛋疼?比如:

     // 校验是为了后面有代码提示
    guard let button1 = button1 else { 
                print("Error")
                return
            }
    button1.rx.tap.subscribe{ (even : Event<()>) in
                print("你点击了按钮")
                }.disposed(by: bag)
    

    UI控件的简单用法

    • 1、UIButton
            guard let button1 = button1 else { //校验是为了后面有代码提示
                print("Error")
                return
            }
            button1.rx.tap.subscribe{ (even : Event<()>) in
                print("你点击了按钮")
                }.disposed(by: bag)
    
    • 2、UITextField
    tf.rx.text.subscribe { (even : Event<String?>) in
        print(even.element!!)
        self.label.text = even.element!
        }.disposed(by: bag)
    
    tf.rx.text.subscribe(onNext: { (str : String?) in
        print("str: \(str ?? "")")
        self.label.text = str ?? ""
    }).disposed(by: bag)
    
    if let tf  = tf { // if校验为了后面有代码提示
                tf.rx.text.bind(to: label.rx.text).disposed(by: bag)
            }
    
    • 3、UILabel
    label.rx.observe(String.self, "text").subscribe(onNext:
    { (string) in
        print("s--\(string!)")
        /*
         2017-12-27 16:51:06.102420+0800 RxSwift常见用
    [16431:2762994] [MC] Reading from private effective
    user settings.
         s--1
         s--11
         s--111
         s--1111
         s--11111
         */
    }).disposed(by: bag)
    
    • 4、UIScrollView
    scrollView.contentSize = CGSize(width: 1000, height: 1100)
    scrollView.rx.contentOffset.subscribe(onNext: { (poit) in
        
    print("poit== \(poit.x)")
    }).disposed(by: bag)
    

    github代码.

    相关文章

      网友评论

        本文标题:RxSwift常见用法(一)

        本文链接:https://www.haomeiwen.com/subject/dpnugxtx.html