ios - UI TableView 在表格 View 的开头添加行,即位置 -1

标签 ios swift uitableview

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

相关文章:

iphone - SDK中的蓝色邮件点?

ios - 设置背景颜色应用于屏幕的一部分

Swift 线程 : When to use DispatchQueue. main.async?

swift - Foundation 是默认导入的吗?

xcode - 分配@IBDesignable自定义类时 StoryboardUIView背景颜色消失

ios - 如何在删除多行时实现 NSFetchedResultsController 委托(delegate)?

ios - UITableview委托(delegate)方法在json方法之前调用

objective-c - 插入没有任何动画的 UITableView 行

ios - Alamofire 4 请求返回 NSArray,无法弄清楚如何在 Swift 3 中使用 SwiftyJSON 进行解析

ios - 可选 ("Operation in progress.") 当使用 HomeKit 在 iOS 模拟器上添加配件时