gpt4 book ai didi

ios - UITableView 滚动到顶部时加载更多数据?

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:30 24 4
gpt4 key购买 nike

如何在滚动到顶部的同时加载更多数据而不丢失当前偏移量哦 UITableView

这是我想要实现的目标:

这是整组数据:

第 1 行
第 2 行
第 3 行
第 4 行
第 5 行
第 6 行
第 7 行
第 8 行*
第 9 行
第 10 行
第 11 行
第 12 行
第 13 行
第 14 行
第 15 行

现在,假设用户加载了以粗体标记的那些并且偏移量位于 第 8 行,如果用户向上滚动并到达 第 7 行,我想加载并插入从 1 到 5 的行,而不从 第 7 行 跳转。请记住,用户可能正在滚动,因此当数据到达手机时,它位于 第 6 行,因此我无法将其跳回到 第 7 行,但保留滚动平滑自然(当您在向下滚动的同时加载更多数据时,数据会重新加载而表格 View 不会从行之间跳转)。

顺便说一句,偏移量是指 UITableViewcontentOffset 属性。

谢谢你的帮助,我真的很感激!

最佳答案

更新数据时,需要先获取tableView的当前偏移量。然后,您可以将添加的数据的高度添加到偏移量,并像这样设置 tableView 的偏移量:

func updateWithContentOffsset(data: [String]) {
guard let tableView = tableView else {
return
}
let currentOffset = tableView.contentOffset
let yOffset = CGFloat(data.count) * tableView.rowHeight // MAKE SURE YOU SET THE ROW HEIGHT OTHERWISE IT WILL BE ZERO!!!
let newOffset = CGPoint(x: currentOffset.x, y: currentOffset.y + yOffset)
tableView.reloadData()
tableView.setContentOffset(newOffset, animated: false)
}

您还可以查看 gist我创造的。只需打开一个新的 iOS Playground 并复制粘贴要点。

您唯一需要注意的是确保您知道要添加到偏移量的行高。

关于ios - UITableView 滚动到顶部时加载更多数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41750134/

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