【发布时间】:2017-12-28 09:55:04
【问题描述】:
我使用典型的组合 CoreData - NSFetchedResultsController - UITableViewController。
当我使用:
func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
self.tableView.beginUpdates()
}
func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
self.tableView.endUpdates()
}
通过更新数据源中的一项(不插入也不删除),有时,tableView 会无缘无故地上下跳动。
如果我有几个单元格,不足以填充表格视图,它不会反弹。
如果我有更多单元格来滚动表格视图,它不会反弹。
但是,如果我有足够的单元格来填充 tableview,这就是它反弹的地方。
如果我删除 beginUpdates() 和 endUpdates(),则不会出现随机反弹,但我会失去 begin/endUpdates() 的优势。
是什么原因造成的?以及如何解决?
【问题讨论】:
-
您在某处调用 tableView.reloadData() 导致此问题
-
设置
tableView.bounces = false -
我不会在任何地方打电话给
tableView.reloadData()。 -
tableView.bounces = false没有修复它。 -
这个我试过了,不行,还在弹跳。
标签: ios uitableview core-data nsfetchedresultscontroller