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 动画出现问题