我这里有一个非常简单的UITableViewController案例NSFetchedResultsController。它来自 Xcode Master-Detail App 示例代码,因此很容易重现。
我有一个 CoreData 模型,其中有 1 个实体和 1 个字符串属性。它显示在一个UITableViewController. 我使用.subtitle系统单元类型。通过选择一行,我只需更新字符串属性。
所以我的问题是,当我添加足够的行供表格视图滚动时(带导航栏的 iPhone 5s 上的 10-11 行),然后向下滚动并选择任何行,表格视图会上下弹跳。
如果行数较少(少于 10 行)或多行(12 行及以上),则行为正常。
所以问题似乎是在滚动视图的极限处发生的。如果我不使用beginUpdates()/ endUpdates(),问题就会消失,但我会失去它们的优势。
这是发生的情况
的视频链接
class TableViewController: UITableViewController, NSFetchedResultsControllerDelegate {
var managedObjectContext: NSManagedObjectContext? = nil
@objc func insertNewObject(_ sender: Any) {
let context = self.fetchedResultsController.managedObjectContext
let newEvent = Event(context: context)
newEvent.aString = "a String"
try? context.save()
}
override func viewDidLoad() {
super.viewDidLoad()
let addButton = UIBarButtonItem(barButtonSystemItem: .add, …Run Code Online (Sandbox Code Playgroud)