如何解决使用分页并通过UITableViewDiffableDataSource进行刷新
我有UITableViewController
同时支持分页和拉动刷新。
我试图了解正确的处理方式
- 替换所有数据-拉动刷新
- 附加新项目-分页
我有如下更新方法。
首次从拉动更新数据以刷新或加载数据时,refresh
标志为true
,在分页更新中为false
。
func update(with list: UserList,animate: Bool = true,refresh: Bool) {
var snapshot: NSDiffableDataSourceSnapshot<Section,UserList>
if refresh {
snapshot = NSDiffableDataSourceSnapshot<Section,UserList>()
snapshot.appendSections(Section.allCases)
} else {
snapshot = dataSource.snapshot()
}
snapshot.appendItems(list.active,toSection: .active)
dataSource.apply(snapshot,animatingDifferences: animate)
}
我不确定这是否正确。
我正在刷新,添加节,添加项目并应用时创建一个新的空快照。
在分页时,我正在抓取现有的dataSource快照并将我的项目添加到末尾。
这是对dataSource.snapshot()
的正确使用吗?还是每次都简单地附加到一个空快照上就可以了吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。