SwiftUI 实战之List分页与无限滚动之基础版(2020教程)

尽管我们可以访问List中的具体item,但是我们不知道List滚动到了当前哪个位置,也不知道我们到List末尾的距离。这些数据都是我们进行分页的基础。

Pagination(分页)对于每个人都有不同的含义,因此我们先给分页的目标做个明确定义:

在滚动过程中,List应提取并追加下一页的数据。当用户到达列表末尾且请求仍在进行中时,应显示加载视图。

基于上面的定义,让我们实现一个解决方案来解决这些问题,给List增加分页功能

实现

在此节中,我们将介绍两种不同的方案。第一种将更为简单,第二种将更为高级用户喜欢。

第一种方法

最简单的方法就是监测当前item是否是最后一个。如果是,我们则触发一个异步请求去提取下一页的数据。

RandomAccessCollection+isLastItem

由于List支持RandomAccessCollection,我们可以创建一个extension并实现isLastItem 函数。Self关键词是必须的,它将限制extension的元素必须实现Identifable。

好了,上面这段文字没有深入研究过swift的朋友肯定要懵圈了。大家可以参考我之前文章,简单了解一下RandomAccessCollection 和Identifiable

下面是代码

还有 86% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥1.59 继续阅读

推荐阅读更多精彩内容