重新加载数据时如何将索引路径行值重置为零?



我有一个UITableView,大约有30个项目。以下是我的表视图如何工作的概述:为了实现无限滚动和较小的内存大小,我计算了滚动方向、速度,并删除了前 10 个项目并在底部添加了 10 个项目(以另一种方式向上滚动也是如此)。如果我要滚动到一个项目,当我尝试用一组新的 30 个项目重新加载 Data() 时,indexPath.row 将停留在同一项目上。

我尝试创建自己的索引来使用,但它有很多方面,会使它变得非常复杂。我正在寻找是否可以重置indexPath.row。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
item = items[indexPath.row]
}

有时,我想跳到几页下来的另一组项目。因此,我随后将当前的项目数组替换为新的 30 个项目。但是,当我向下滚动了一点(假设我在第 15 个单元格上)然后跳转到一组新的 30 个项目时,第一个显示在 tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 是第 15 个单元格。索引路径行 = 15...为什么 indexPath.row 没有更新到 0?当我用一组新项目填充我的数组并调用 reloadData() 时,有没有办法将 indexPath.row 重置为 0?

显然,手动设置indexPath是不可能的。相反,我只需将 tableView 滚动到顶部,以确保它从第一个元素开始。

tableView.scroll(to: .top, animated: false)

相关内容

  • 没有找到相关文章

最新更新