快速插入行并带有动画效果

标签 swift macos cocoa core-data nstableview

在我的应用程序的初稿中,我用静态数组填充了 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/

相关文章:

ios - 如何让 UIViewController 弹出 Swift SWRevealViewController?

swift - ios13 中未调用丰富通知扩展

swift - 使用 WKWebView 输入类型=文件上传文件不会打开文件对话框

ios - 将字典键传递给 CFDictionaryGetValue

macos - 使用swift从货币代码中获取货币符号

ios - 如何在按下按钮后将 View 中的特定信息添加到警报消息?

ios - 在表格单元格中显示自定义分隔符 UIView

objective-c - 用于 Objective-C 的 Lint ?

ios - 在Swift中,如何避免同时使用 optional 对象和nil对象引用?

macos - 将静态项目添加到 Cocoa 应用程序中的 "Windows"菜单