UI TableView在表视图的开头添加行,即位置-1

时间:2017-09-01 11:12:54

标签: ios swift uitableview

我有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

感谢您提前提供任何帮助

1 个答案:

答案 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

如果表格中没有足够数量的单元格填充整个视图,您将看到行插入和滚动。

一旦表格的视图被单元格填充,新单元格将插入顶部,表格将保持其滚动位置。