我使用典型的组合CoreData-NSFetchedResultsController
-UITableViewController
。
当我使用时:
func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
self.tableView.beginUpdates()
}
func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
self.tableView.endUpdates()
}
通过更新数据源中的一项(无插入或删除),有时,tableView会无缘无故地上下跳动。
如果我有几个单元格,不足以填满表格视图,它不会反弹。
如果我还有更多的单元格可以滚动表格视图,则它不会反弹。
但是,如果我只有足够的单元格来填充表格视图,则该位置会反弹。
如果删除
beginUpdates()
和endUpdates()
,则不会出现随机跳动,但是我失去了begin / endUpdates()的优势。可以看到here或over here预览
是什么原因造成的?以及如何解决?
最佳答案
在iOS 11类似问题上,替换为[tableView performBatchUpdates:nilcomplete:nil];解决问题
关于ios - 带有beginUpdates()的UITableView反弹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48005287/