Swift - RxSwift的使用详解32(UITableView的使用3:刷新表格数据)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift - RxSwift的使用详解32(UITableView的使用3:刷新表格数据)相关的知识,希望对你有一定的参考价值。

参考技术A

(1)界面初始化完毕后, tableView 默认会加载一些随机数据。

(2)点击右上角的刷新按钮, tableView 会重新加载并显示一批新数据。

(3)为方便演示,每次获取数据不是真的去发起网络请求。而是在本地生成后延迟 2 秒返回,模拟这种异步请求的情况。

(1) flatMapLatest 的作用是当在短时间内(上一个请求还没回来)连续点击多次“刷新”按钮,虽然仍会发起多次请求,但表格只会接收并显示最后一次请求。避免表格出现连续刷新的现象。

(2)我们也对源头进行限制下。即通过 throttle 设置个阀值(比如 1 秒),如果在1秒内有多次点击则只取最后一次,那么自然也就只发送一次数据请求。

        在实际项目中我们可能会需要对一个未完成的网络请求进行中断操作。比如切换页面或者分类时,如果上一次的请求还未完成就要将其取消掉。下面通过样例演示如何实现该功能。

       这里我们在前面样例的基础上增加了个“ 停止 ”按钮。当发起请求且数据还未返回时(2 秒内),按下该按钮后便会停止对结果的接收处理,即表格不加载显示这次的请求数据。

       该功能简单说就是通过 takeUntil 操作符实现。当 takeUntil 中的 Observable 发送一个值时,便会结束对应的 Observable 。

以上是关于Swift - RxSwift的使用详解32(UITableView的使用3:刷新表格数据)的主要内容,如果未能解决你的问题,请参考以下文章

RXSwift的一些基本交互(OC,Swift,RXSwift对比)

swift RxSwift - 使用 - extension.swift

Swift (RxSwift):使用泛型链接 ViewItem 和 Cell 类

Swift 4“调用中的额外参数”Rxswift

Swift  之 RxSwift

如何将 RxSwift 用于 Objective-C 和 Swift 项目?