Xcode Swift 4 调用 self.tableView.reload() 以减少单元格行数

Posted

技术标签:

【中文标题】Xcode Swift 4 调用 self.tableView.reload() 以减少单元格行数【英文标题】:Xcode Swift 4 calling self.tableView.reload() to reduce number of cell rows 【发布时间】:2018-02-19 06:38:17 【问题描述】:

从“delete editingStyle forRowAt”调用 tableView.reload 后,由于数据源数组计数相应减少,有没有办法减少表行数?我认为一旦在 tableView 上绘制了单元格 UI,就无法通过 tableView.reload 将其删除。相反,用户将不得不删除该行。告诉我,谢谢。

【问题讨论】:

【参考方案1】:

从数据源数组中删除记录后可以直接调用:

 self.tableView.deleteRows(at: [indexPathForDeltedItem], with: .automatic)

如果您使用的是 NSFetchedResultController,那么流程将是:

    从您的核心数据实体中删除一条记录。 这将使用操作 .delete 调用 fetchResultController Delegate 从 tableView 中删除单元格。

【讨论】:

感谢 Peeyush 提供的信息和流程。 NSFetchedResultController 是我在将 tableView 和 Core Data 绑定在一起时寻找的功能。 不客气 :)【参考方案2】:

看起来我可以查看 NSFetchResultsController 以响应数据更改并将 tableView 与 Core Data 同步。

【讨论】:

以上是关于Xcode Swift 4 调用 self.tableView.reload() 以减少单元格行数的主要内容,如果未能解决你的问题,请参考以下文章

Xcode Swift 4 调用 self.tableView.reload() 以减少单元格行数

Swift缓存tableview json数据

无法在 Alamofire 中禁用缓存(Xcode 9 - swift 4)

Swift 4 - 使用 PromiseKit 调用嵌套

viewDidLoad 函数未在 Xcode 6.2 swift 应用程序中调用,但在 OS X 上的 Xcode 6.4 swift 应用程序中调用

Xcode 8 Swift 3:未调用模态演示转换委托