RxSwift系列
①、RxSwift基础控件的使用、RxSwif-Tableview的使用、RxSwift-SectionTableview结合RxDataSources的使用、RxSwift 网络请求封装的使用
②、RxSwift函数式响应编程思想,RxSwift-KVO、Button、UITextField、ScrollView、手势、通知、定时器、网络请求的使用
③、iOS-RxSwift核心逻辑,RxSwift实战案例,Observable的继承链,Observable订阅的流程、OnNext的流程、AnonymousObservableSink业务逻辑用
④、RxSwift的Timer、Observable的创建、RxSwiftUI控件(UIDatePicker、UIButton、UISwitch、UISlider、UIStepper)在实际开发的使用

推荐网站
RxSwift官方文档
RxSwift-Github源码
RxSwift的操作符

Demo
Demo-①、RxSwift基础控件的使用、RxSwif-Tableview的使用、RxSwift-SectionTableview结合RxDataSources的使用、RxSwift 网络请求封装的使用
Demo-②、RxSwift函数式响应编程思想,RxSwift-KVO、Button、UITextField、ScrollView、手势、通知、定时器、网络请求的使用-1
Demo-②、RxSwift函数式响应编程思想,RxSwift-KVO、Button、UITextField、ScrollView、手势、通知、定时器、网络请求的使用-2-Observable

本篇文章 参照文献
1.BehaviorRelay 无法使用value 给BehaviorRelay扩展 不使用value属性 使用val属性


RxSwift初探

  • ①、RxSwift 基本控件的使用
    • 1.RAC和RxSwift对比
      • RAC
      • RxSwift
    • 2.RxSwift 监听值的改变 以`UITextField`输出多少字符为例
      • 2.1 RxSwift 监听值的改变绑定多个UI 进行关联
    • 3.RxSwift 双向绑定 添加操作符的扩展
      • 3.1 rxSwift4 定义变量是`Variable ` RxSwift5.x 使用的是 `BehaviorRelay`或者`BehaviorSubject` .[具体参考](https://beeth0ven.github.io/RxSwift-Chinese-Documentation/content/rxswift_core/observable_and_observer/variable.html)
      • 3.2 `<->`双向绑定操作符的扩展 `BehaviorRelay`不能直接使用value属性 [具体参考](https://stackoverflow.com/questions/47452582/how-to-use-behaviorrelay-as-an-alternate-to-variable-in-rxswift)`BehaviorRelay`添加扩展
        • Operators.swift
    • 4.RxSwift给`UIbutton`绑定点击事件
  • ②、RxSwift Tableview的使用
    • 0.pod 安装 `RxDataSource` 用来操作tableview的
    • 1.RxSwift绑定tableview `bind`
      • 1.[Rx的just操作符](https://beeth0ven.github.io/RxSwift-Chinese-Documentation/content/decision_tree/just.html) `just 操作符将某一个元素转换为 Observable。`
    • 2.RxSwift的tableview `select`选择操作
    • 3.RxSwift的tableview `move`移动操作
    • 4.RxSwift的tableview `delete`删除操作
  • ③、RxSwift SectionTableview结合RxDataSources的使用
    • 1.创建section的tableview
    • 2.使用`RxTableViewSectionedReloadDataSource` 创建 `数据源`
      • 2.1 先创建本地SectionTableView的数据
      • RxDataModel
      • 2.2 创建`RxTableViewSectionedReloadDataSource`类型的数据源
      • 2.3 将本地数据关联到数据源里面去
  • ④、RxSwift 网络请求封装的使用
    • 1.结合URSession使用RxSwift 进行请求 以 `json`格式返回
    • 2.结合URSession使用RxSwift 进行请求 以 `data`格式返回
    • 3.结合URSession使用RxSwift 进行请求 以 `reponse`,`data`格式返回
    • 4.使用RxSwift网络请求应用到搜索模块
      • 1.SearchViewModel
      • 2.RxNewSearchVC
        • 1.创建`Tableview`、`SearchBar`、`searchResultsController`
        • 2.将`SearchViewModel`和Tableview进行关联绑定
        • 3.将`SearchBar`输入和`SearchViewModel`进行绑定

①、RxSwift 基本控件的使用

1.RAC和RxSwift对比

RAC

    // 1.创建信号@weakify(self);RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {@strongify(self);NSLog(@"来了,网络请求");// 3.发送信息[subscriber sendNext:@"yuye"];// 4.销毁信号return [RACDisposable disposableWithBlock:^{NSLog(@"我们销毁了");}];}];// 2.订阅信号 --- 保存block[signal subscribeNext:^(id  _Nullable x) {NSLog(@"订阅到了 : %@",x);}];[signal subscribeError:^(NSError * _Nullable error) {NSLog(@"Error is %@",error);}];

RxSwift

func RxSwiftUse(){// RAC --- Signal//  1.产生序列 --- swiftlet observer = Observable<Any>.create { (ob) -> Disposable in//print(ob)// 3.发送ob.onNext("tenhow")ob.onError(MyError.errorA)ob.onCompleted()return Disposables.create()}// 订阅observer.subscribe { (signal) inprint(signal)} onError: { error inprint(error)} onCompleted: {print("完成了")} onDisposed: {print("销毁了")}.disposed(by: disposB)}

2.RxSwift 监听值的改变 以UITextField输出多少字符为例

@IBOutlet weak var textf: UITextField!
@IBOutlet weak var label: UILabel!func listenInput() {// orEmpty 可能是空值// asDriver(当司机) 生成响应的系列类型之后// throttle 只隔几秒之后 才会响应// map 进行函数预设// drive(开车) 卡车 就绑定到响应的控件里面去//let textInput = textf.rx.text.orEmpty.asDriver().throttle(RxTimeInterval.seconds(1))textInput.map { "输入:\($0.count)"}.drive(label.rx.text).disposed(by: disposB)}

2.1 RxSwift 监听值的改变绑定多个UI 进行关联

@IBOutlet weak var btn: UIButton!textInput.map{$0.count > 5}.drive(btn.rx.isEnabled).disposed(by: disposB)

3.RxSwift 双向绑定 添加操作符的扩展

3.1 rxSwift4 定义变量是Variable RxSwift5.x 使用的是 BehaviorRelay或者BehaviorSubject .具体参考

        // rxSwift5 开始使用 BehaviorRelaylet textOb = BehaviorRelay(value: "												

①、iOS-RxSwift基础控件的使用、RxSwift-Tableview的使用、RxSwift-SectionTableview结合RxDataSources使用、RxSwift 网络请求封装使用相关推荐

  1. iOS小白之路...iOS中基础控件的使用

    UIlabel是iOS开发中应用比较广泛的一个基础控件. uilabel最重要的功能是为我们提供文本展示. uilabel有哪些常用的属性. >uilabel.text设置文本标签展示文字 &g ...

  2. RxSwift UI控件扩展

    RxSwift UI控件扩展 最好的示例是参考RxCocoa查看类似的属性如何扩展Rx化的. 为了配合RxSwift的绑定关系,RxCocoa提供简单的基于Cocoa控件的扩展,但是很少,比如Labe ...

  3. iOS界面设计之基础控件的学习 --- UITextField

    学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable . UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的 ...

  4. android 仿ios三级联动,仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果...

    Android-PickerView 注意事项.详请使用方式.更新日志等,请查看 Wiki文档 Wiki文档,Wiki文档,Wiki文档 !~ 重要的事情说三遍 对于使用上有任何疑问或优化建议等,欢迎 ...

  5. 从0到1搭建移动App功能自动化测试平台(2):操作iOS应用的控件

    转载:http://debugtalk.com/post/build-app-automated-test-platform-from-0-to-1-Appium-interrogate-iOS-UI ...

  6. android studio 画控件,Android Studio 基础控件使用

    TextView android:gravity="center" //文字对其方式 top bottom left right center android:textColor= ...

  7. iOS自定义View 控件自动计算size能力

    iOS自定义View 控件自动计算size能力 背景 在使用 UILabel 和 UIImage 的时候,不用指定宽高约束,控件也不会报约束缺失,还可以根据内容自己确定适合的宽高,特别适合 Xib 和 ...

  8. Android中的基础控件TextView、Button、ImageView、EditText、ProgressBar

    文章目录 1 Android中的基础控件 1.1 控件的通用属性 2 TextView 2.1 TextView的继承关系 2.2 TextView的常用属性 3 EditText 3.1 常用属性 ...

  9. Android:基础控件按键文本框输入框制作登录页面

    基础控件之Button,TextView,EditText,ImageView Button:按键 TextView:文本框 EditText:输入框 ImageView:图片 那我们新建一个工程研究 ...

  10. 003 Android之线性布局与基础控件

    文章目录 Android快速入门三步 布局介绍 LinearLayout布局属性 代码示例 基础控件 TextView和EditText 使用TextView与EditText ImageView I ...

最新文章

  1. MinkowskiPooling池化(上)
  2. 啥?Transformers又来刷CV的榜了?
  3. 【音频处理】从时域和频域上分别改变音频的响度
  4. trap信号捕捉命令介绍与shell结合实战讲解
  5. 四阶龙格库塔法的基本思想_SIR模型计算基本再生数R0
  6. 文件管理服务器数据库,会博通系统的海量数据库管理策略
  7. Fleury (弗罗莱) 算法通俗解释
  8. scss的使用方式(环境搭建)
  9. 如何收缩超大的SharePoint_Config数据库
  10. Android .apk逆向工程(安装篇):如何正确使用dex2jar
  11. shell之vi替换字符串
  12. 通过网页端保存ins图片的方法(谷歌浏览器)
  13. devil may cry 4 android apk,Devil May Cry
  14. 基于Mendix的云上全流程透明性备品备件协同管理
  15. 学习costmap代价地图
  16. 如何申请百度API Key
  17. AprilTag: A robust and flexible visual fiducial system论文解读
  18. 范数(norm) 几种范数的简单介绍
  19. 经典网络架构学习-Transformer
  20. 3、nginx设置简单的代理服务器-阅读官方文档

热门文章

  1. android 远程代码,Android 远程连接数据库。。。。。(示例代码)
  2. 仿射变换(Affine Transformation)原理及应用(1)
  3. python导入mysqldb_Python导入MySQLdb库
  4. 超酷flv网页播放器 CKplayer V5.7
  5. 分享学JavaScript的第十天
  6. iOS应用程序的辅助功能:辅助功能检查器
  7. 网络中的中间商(CDN)
  8. 第三章 眼睛的目视光学系统
  9. 百度自定义技能真机测试
  10. 奈奎斯特定理和香农定理