RxSwift Bind UI Just Of From Creat Range Repeat

import RxSwift
import RxCocoa


//The package connected to the controller is used to destroy the observer
    fileprivate lazy var bag: DisposeBag = DisposeBag()

override func viewDidLoad() {
    super.viewDidLoad()

    testButton.rx.tap.subscribe{ (event: Event<()>) in
            print("Monitor click events")
        }.disposed(by: bag)

//Monitor modification events of text field
    testTextField.rx.text.subscribe{ (event: Event<String?>) in
            print(event.element ?? "")

        }.disposed(by: bag)

//Monitor modification string of Label
    textLabel.rx.observe(String.self, "text").subscribe { (str: String?) in
            print(str)
        }.disposed(by: bag)

//Monitor modification frame of uiView
    textLabel.rx.observe(CGRect.self,"text").subscribe{ ( frame: CGRect?)
            in
            print(frame)
        }.disposed(by: bag)

//Other closures
        testTexfield.rx.text.subscribe { (str: String?) in
            print(str)
        } onError: { error in

        } onCompleted: {

        } onDisposed: {

        }.disposed(by: bag)

//Bind the contents of input box and label
        bottomTexfield.rx.text.bind(to: textLabel.rx.text).disposed(by: bag)

        scrollView.contentSize = CGSize(width: 1000, height: 1000)
//Monitor the content offset of the scrolling view
        scrollView.rx.contentOffset.subscribe { (point : CGPoint) in
            print(point)
        } onError: { error in
            
        } onCompleted: {
            
        } onDisposed: {
            
        }

}

Observable 产生事件
Observer 响应事件
Operator 创建变化组合事件(操作符)
Disposable 管理绑定(订阅)的生命周期
Schedulers 线程调配队列

1 可监听序列

Single: 要么只能发出一个事件,要么产生一个error事件。
Completable: 要么产生一个completed事件,要么产生一个error事件。
Maybe:发出一个元素或者一个 completed 事件或者一个 error 事件。
Driver:1.)不会产生error事件 2.)一定在MainScheduler监听(主线程监听)3.)共享附加作用
Signal: 和driver类似。
ControlEvent:1.)不会产生error事件 2.)一定在mainScheduler订阅 3.) 一定在manScheduler监听 4.)共享附加作用
driver和signal的区别:Driver会重新发送上一个元素,Signal不会。状态序列选Driver类型,事件序列选Signal类型。

2 observer

AnyObserver:任意观察者。
Binder:确保在给定scheduler上执行(默认mainScheduler),一般由于UI操作

3.3 既是可监听序列也是观察者

AsyncSubject:发出最后一个元素或完成事件。
PublishSubject:对观察者发送订阅后产生的元素。
ReplaySubject:对观察者发送全部的元素。
BehaviorSubject: 将源 Observable 中最新的元素发送出来,然后发送新元素。
ControlProperty: 专门用于描述 UI 控件属性。
3.4 Schedulers(线程调配队列)

MainScheduler:代表主线程。如果你需要执行一些和 UI 相关的任务,就需要切换到该 Scheduler 运行。
SerialDispatchQueueScheduler:抽象了串行 DispatchQueue。如果你需要执行一些串行任务,可以切换到这个 Scheduler 运行。
ConcurrentDispatchQueueScheduler:抽象了并行 DispatchQueue。如果你需要执行一些并发任务,可以切换到这个 Scheduler 运行。
OperationQueueScheduler: 抽象了 NSOperationQueue。它具备 NSOperationQueue 的一些特点,例如,你可以通过设置 maxConcurrentOperationCount,来控制同时执行并发任务的最大数量。

 

 Just

 Of

 From

 creat

 

range 

Repeat 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值