1

我有UITableViewController它支持分页和拉刷新。

我试图了解正确的处理方式

  1. 替换所有数据 -拉动刷新
  2. 追加新项目 -分页

我有一个如下所示的更新方法。

当数据从拉取刷新或第一次加载时,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()还是实际上可以每次都简单地附加到空快照?

4

0 回答 0