①、iOS-RxSwift基础控件的使用、RxSwift-Tableview的使用、RxSwift-SectionTableview结合RxDataSources使用、RxSwift 网络请求封装使用
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 网络请求封装使用相关推荐
- iOS小白之路...iOS中基础控件的使用
UIlabel是iOS开发中应用比较广泛的一个基础控件. uilabel最重要的功能是为我们提供文本展示. uilabel有哪些常用的属性. >uilabel.text设置文本标签展示文字 &g ...
- RxSwift UI控件扩展
RxSwift UI控件扩展 最好的示例是参考RxCocoa查看类似的属性如何扩展Rx化的. 为了配合RxSwift的绑定关系,RxCocoa提供简单的基于Cocoa控件的扩展,但是很少,比如Labe ...
- iOS界面设计之基础控件的学习 --- UITextField
学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable . UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的 ...
- android 仿ios三级联动,仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果...
Android-PickerView 注意事项.详请使用方式.更新日志等,请查看 Wiki文档 Wiki文档,Wiki文档,Wiki文档 !~ 重要的事情说三遍 对于使用上有任何疑问或优化建议等,欢迎 ...
- 从0到1搭建移动App功能自动化测试平台(2):操作iOS应用的控件
转载:http://debugtalk.com/post/build-app-automated-test-platform-from-0-to-1-Appium-interrogate-iOS-UI ...
- android studio 画控件,Android Studio 基础控件使用
TextView android:gravity="center" //文字对其方式 top bottom left right center android:textColor= ...
- iOS自定义View 控件自动计算size能力
iOS自定义View 控件自动计算size能力 背景 在使用 UILabel 和 UIImage 的时候,不用指定宽高约束,控件也不会报约束缺失,还可以根据内容自己确定适合的宽高,特别适合 Xib 和 ...
- Android中的基础控件TextView、Button、ImageView、EditText、ProgressBar
文章目录 1 Android中的基础控件 1.1 控件的通用属性 2 TextView 2.1 TextView的继承关系 2.2 TextView的常用属性 3 EditText 3.1 常用属性 ...
- Android:基础控件按键文本框输入框制作登录页面
基础控件之Button,TextView,EditText,ImageView Button:按键 TextView:文本框 EditText:输入框 ImageView:图片 那我们新建一个工程研究 ...
- 003 Android之线性布局与基础控件
文章目录 Android快速入门三步 布局介绍 LinearLayout布局属性 代码示例 基础控件 TextView和EditText 使用TextView与EditText ImageView I ...
最新文章
- MinkowskiPooling池化(上)
- 啥?Transformers又来刷CV的榜了?
- 【音频处理】从时域和频域上分别改变音频的响度
- trap信号捕捉命令介绍与shell结合实战讲解
- 四阶龙格库塔法的基本思想_SIR模型计算基本再生数R0
- 文件管理服务器数据库,会博通系统的海量数据库管理策略
- Fleury (弗罗莱) 算法通俗解释
- scss的使用方式(环境搭建)
- 如何收缩超大的SharePoint_Config数据库
- Android .apk逆向工程(安装篇):如何正确使用dex2jar
- shell之vi替换字符串
- 通过网页端保存ins图片的方法(谷歌浏览器)
- devil may cry 4 android apk,Devil May Cry
- 基于Mendix的云上全流程透明性备品备件协同管理
- 学习costmap代价地图
- 如何申请百度API Key
- AprilTag: A robust and flexible visual fiducial system论文解读
- 范数(norm) 几种范数的简单介绍
- 经典网络架构学习-Transformer
- 3、nginx设置简单的代理服务器-阅读官方文档
热门文章