gpt4 book ai didi

ios - 使用 NSFetchedResultsController 委托(delegate)方法将多行插入 tableView 时出现问题

转载 作者:行者123 更新时间:2023-11-30 12:44:06 25 4
gpt4 key购买 nike

因此,我将 NSFetchedResultsController 用于始终增加 10 或任何可被 10 整除的数字的实体。我遇到的问题是,在为 NSFetchResultsController 调用委托(delegate)方法并插入行之后, tableView 将滚动到某个随机位置(通常朝向表格底部)。我不知道这是否是单元格高度(动态)的问题,或者单元格包含需要加载的图像的事实,或者我是否错误地处理了委托(delegate)方法,或者我是否创建对象错误。任何帮助将不胜感激

此外,我正在使用 MoPub,因此 mp_

NSFetchedResultsControllerDelegate 方法

func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
self.tableView.mp_beginUpdates()
}

func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) {
switch type {
case NSFetchedResultsChangeType.insert:
guard let insertIndexPath = newIndexPath else { return }
self.tableView.mp_insertRows(atIndexPaths: [insertIndexPath], with: .fade)
case NSFetchedResultsChangeType.delete:
guard let deleteIndexPath = indexPath else { return }
self.tableView.mp_deleteRows(atIndexPaths: [deleteIndexPath], with: .fade)
default:
break
}
}

func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>) {
self.tableView.mp_endUpdates()
}

插入方法

for index in 0..<posts.count {
let post = posts[index]
guard let _ = RecentPost.createInManagedObjectContext(context: context, post: post, sequence: index) else { continue }
}

createInManagedObjectContext 只是我用来插入新对象的方法,post.count 始终是 10 的被除数

最佳答案

由于我的单元格高度是动态的,因此我将 estimatedRowHeight 设置为 300,将其更改为 1000 似乎可以解决我的问题。如果您知道除此之外的任何其他方法来修复它,或者对我的代码有任何改进,请告诉我。谢谢

这就是我得出答案的原因。 https://stackoverflow.com/a/38867302/4745553

编辑

实际上我仍然遇到问题,因为我正在响应多个更改,所以我只是使用 controllerDidChangeContent 委托(delegate)方法并在其调用 tableView.reloadData() 。他们不是动画,但我正在做的事情没问题。

这也帮助我解决了这个问题。 https://stackoverflow.com/a/3013353/4745553

关于ios - 使用 NSFetchedResultsController 委托(delegate)方法将多行插入 tableView 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41867365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com