UITableView 中的 reloadSections 弹回顶部

Posted

技术标签:

【中文标题】UITableView 中的 reloadSections 弹回顶部【英文标题】:reloadSections in UITableView bounces to top 【发布时间】:2017-08-02 12:18:03 【问题描述】:

在我的UITableView 中,对模型进行了某些更改后,我试图根据模型加载我的单元格正在加载的特定部分。但是每当发生变化时,动画就会出现错误,就像弹跳到顶部或向下一样。我该如何解决?到目前为止,没有任何效果。这就是我在 api 响应后更新我的部分的方式:

DispatchQueue.main.async 

                    self.tableView.beginUpdates()
                    self.tableView.reloadSections(indexSet, with: .none)
                    self.tableView.endUpdates()

                

【问题讨论】:

您正在从表中大量添加/删除?还是每次重新加载只添加或删除 1/2 个对象? 是的,所有部分都可以根据要求更新 如果您希望它以优雅的方式重新加载,您可以插入和删除单元格而不是重新加载。这是通过动画完成的。这是否满足您的需求? 实际上不是因为我只需要更新模型值,我想根据它重新加载它 如果您致电reloadSections(),您还会看到“弹跳”吗?也就是说,NOT 将其包装在 begin / end Updates()... 【参考方案1】:

因为我有不同尺寸的图像,所以我的tableview 在重新加载表格时无法调整高度计算。所以我试图预先计算以前的高度并将其调整为新的高度。在实现这件事时,我想到我可以从我的单元格中更新表格并调用layoutIfNeeded就可以了。所以最终它奏效了。

【讨论】:

以上是关于UITableView 中的 reloadSections 弹回顶部的主要内容,如果未能解决你的问题,请参考以下文章

UITableView reloadData、reloadSections:withRowAnimation: 和 reloadRowsAtIndexPaths:withRowAnimation: 的

UITableView reloadSections/reloadData:标题视图变为空白

tableView 使用 reloadSections:withRowAnimation: 时,会跳动的问题

reloadSections:withRowAnimation 动画出现问题

尝试使用 reloadsections 重新加载时,节中的行数无效

UITableView 重新加载部分时的内容插入更改