我有UITableview,它有很多这样的项目
item4
item3
item2
item1
因此,当用户滚动滚动到item4到顶部时,我想使用func refresh从核心数据中获取item5,item6和item 7,并将它们插入到表视图的顶部,看起来像
item7
item6
item5
item4
..
item1
当我这样做时,我想将滚动保留在第4项。
当我尝试这样做并重新加载表并滚动到第4项的索引路径时,用户可以很容易地注意到这是一些奇怪的滚动发生。对于滚动到索引路径,我已将动画bool设置为false。 所以
1.有没有办法在索引位置-1,-2等处添加项目,或者将整个表重新加载到选项
OR
2.即使在表重新加载之后,也有办法保持滚动位置(我可以识别itemId显示的最后一行,并在重新加载时滚动到该索引路径获取项目的索引路径,但这会导致一个奇怪的即使将动画bool设置为.none后滚动效果
P.S:我正在使用swift 3
感谢您提前提供任何帮助
答案 0 :(得分:0)
这对我有用。
在get_Data_From_Server
方法中:
arrayData.insert(your_data, at: 0)
self.tableView.reloadData()
self.tableView.contentOffset.y += calculated_size_of_the_cell_you_inserted
如果表格中没有足够数量的单元格填充整个视图,您将看到行插入和滚动。
一旦表格的视图被单元格填充,新单元格将插入顶部,表格将保持其滚动位置。