我有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.snapshot()
还是实际上可以每次都简单地附加到空快照?