gpt4 book ai didi

ios - 调用 reloadData() 时 UITableView 的预期 `contentOffset` 是什么?

转载 作者:行者123 更新时间:2023-11-28 19:32:12 25 4
gpt4 key购买 nike

我有一个显示自定义单元格的 UITableView。通过按下按钮,用户可以更改我的 UITableView

的内容

场景:

  1. 加载一个包含 1000 个元素的数组
  2. 将表格滚动到底部(滚动后给我大约 20,000 个 contentOffset.y)
  3. 按下按钮时,我用 300 个元素替换我的数组
  4. 在主线程(gcd)中调用reloadData

在第 4 步之后,我的 UITableView 的正确的新即时 contentOffset.y 应该是什么?我预计它为 0,我的表格滚动到顶部但由于某种原因它不是也不会滚动回顶部。这是 UITableView 的正常行为吗?

最佳答案

来自 Apple 的文档... https://developer.apple.com/reference/uikit/uitableview/1614862-reloaddata

For efficiency, the table view redisplays only those rows that are visible. It adjusts offsets if the table shrinks as a result of the reload.

所以,是的,在 reloadData 上一直滚动到顶部是正常的。

如果您希望它滚动到顶部,请使用setContentOffset 或:

.scrollToRow(at: IndexPath(row: 0, section: 0), at: UITableViewScrollPosition.top, animated: false)

关于ios - 调用 reloadData() 时 UITableView 的预期 `contentOffset` 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42702757/

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