【问题标题】:swift insert row with animation effect快速插入具有动画效果的行
【发布时间】:2018-01-24 16:02:30
【问题描述】:

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

有人知道我怎样才能再次将这个“漂亮”的动画与核心数据一起使用?

【问题讨论】:

  • 如何将数据绑定到tableview?
  • 不使用可可绑定。我使用 tableview 功能
  • 您可能会发现改用 Cocoa Bindings 会更容易。 Core Data 旨在以这种方式使用。开发 iOS 上的 NSFetchedResultsController 是因为该平台上不存在 Cocoa 绑定。

标签: swift macos cocoa core-data nstableview


【解决方案1】:

小问题:单个插入/删除/移动操作不需要beginUpdates() / endUpdates(),它只需要同时进行多个操作。

主要问题reloadData() 不显示任何动画。而不是 ...再次获取所有数据重新加载我的 TableView 使用insertRows(at 在表视图中插入对象。它会更新显示动画的表格视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-10
    • 2019-11-17
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多