在我的应用程序的初稿中,我用静态数组填充了 NSTableView。 我有一个 NSButton,它会插入一个具有如下动画效果的新行:
tableView.beginUpdates()
tableView.insertRows(at: IndexSet(integer: tableview.numberOfRows), withAnimation: .effectFade)
tableView.endUpdates()
此时的简短问题: 我需要 begin-/endUpdates() 命令吗? 我现在看到了是否使用此代码的区别。
主要问题:
现在是我的第二稿:
现在我从 Core Data 中获取 TableView 的数据。 如果我单击 NSButton(插入新行),我会执行不同的操作:创建一条新记录,将其保存到核心数据中,再次获取所有数据并重新加载我的 TableView。
这工作正常,但我不能在我的第二稿中再使用这一行。
tableView.insertRows(at: IndexSet(integer: tableview.numberOfRows), withAnimation: .effectFade)
有人知道如何再次使用带有核心数据的“美丽”动画吗?
最佳答案
简短问题:单个插入/删除/移动操作不需要 beginUpdates()/endUpdates()
,只有多个同时操作才需要它。
主要问题:reloadData()
不显示任何动画。而不是...再次获取所有数据并重新加载我的TableView使用insertRows(at
)将对象插入 TableView 中。它会更新表显示动画的 View 。
关于快速插入行并带有动画效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45714773/