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

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

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

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

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

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

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

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

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

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

一种就是对View的 *** 作,把直接的View移除掉,一种就是让本身的ViewController的根视图为UINavigationController依托,然后push进去,返回时在pop出来


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6771478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存