我有 UITableview,它有很多这样的项目
item4
item3
item2
item1
所以当用户滚动经过 item4 滚动到顶部时,我想使用 func refresh 从核心数据中获取 item5、item6 和 item 7,并将它们插入到 TableView 的顶部,看起来像
item7
item6
item5
item4
..
item1
当我这样做时,我想将滚动条保持在第 4 项。
当我尝试这样做并重新加载表格并滚动到项目 4 的索引路径时,用户可以很容易地注意到这是发生了一些奇怪的滚动。为了滚动到索引路径,我将动 Canvas 尔值设置为 false。 所以
1.有没有办法在索引位置-1、-2等位置添加项目或将整个表重新加载到唯一选项
或
2.即使在表重新加载后,是否有办法保持滚动位置(我可以识别 itemId 显示的最后一行并在重新加载时获取项目的索引路径并滚动到该索引路径,但这会导致一个奇怪的结果即使在将动画 bool 设置为 .none 后也有滚动效果)
附言:我使用的是 swift 3
提前感谢您的帮助
最佳答案
这对我有用。
在您的 get_Data_From_Server
方法中:
arrayData.insert(your_data, at: 0)
self.tableView.reloadData()
self.tableView.contentOffset.y += calculated_size_of_the_cell_you_inserted
如果表格没有足够数量的单元格填充其整个 View ,您将看到行插入和滚动。
一旦表格的 View 被单元格填充,新的单元格将被插入到顶部并且表格将保持其滚动位置。
关于ios - UI TableView 在表格 View 的开头添加行,即位置 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45999041/