gpt4 book ai didi

ios - 重新加载数据时如何将indexPath.row值重置为零?

转载 作者:行者123 更新时间:2023-11-29 05:34:35 25 4
gpt4 key购买 nike

我有一个包含大约 30 个项目的 UITableView。下面是我的 tableview 工作原理的概述:为了启用无限滚动和较小的内存大小,我计算滚动方向、速度,然后删除顶部 10 个项目,并向底部添加 10 个项目(向上滚动也是如此)另一种方法)。如果我要滚动到某个项目,当我尝试使用一组新的 30 个项目进行 reloadData() 时,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 个单元格。 indexPath.row = 15...为什么indexPath.row没有更新为0?当我用一组新的项目填充数组并调用 reloadData() 时,有没有办法将 indexPath.row 重置为 0?

最佳答案

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

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

关于ios - 重新加载数据时如何将indexPath.row值重置为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57172235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com