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() 以减少单元格行数
无法在 Alamofire 中禁用缓存(Xcode 9 - swift 4)
viewDidLoad 函数未在 Xcode 6.2 swift 应用程序中调用,但在 OS X 上的 Xcode 6.4 swift 应用程序中调用