ios - 更新UITableView时,新可见行的单元格丢失而崩溃

原文 标签 ios swift uitableview

删除行时发生崩溃。

// Updating my data model 
....
// apply the updates
self.tableView.beginUpdates()
self.tableView.deleteRows(at: indexPathsToDelete, with: .automatic)
self.tableView.endUpdates()

重现步骤
-添加行
-删除行,特别是要确保当前屏幕之外还有一些行(删除成功后将出现在屏幕中)
-重复直到发生崩溃

它并不总是发生,所以我最好的猜测是,只有在尝试加载的单元被回收时,它才会发生

这是在Xcode 8.0的10.0模拟器中
  *** Assertion failure in -[UITableView _updateWithItems:updateSupport:],
 /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3599.6/UITableView.m:3149
 Missing cell for newly visible row 2
 (null)

cellForRowAt的代码
if isMultipe{
   let cell =  tableView.dequeueReusableCell(withIdentifier: DetailsTableViewCell.defaultIdentifier, for: indexPath) as! DetailsTableViewCell
return cell
    } else {
let cell =  tableView.dequeueReusableCell(withIdentifier: DetailsMultipleTableViewCell.defaultIdentifier, for: indexPath) as! DetailsMultipleTableViewCell
   return cell
}

此处报告了相同的错误:https://forums.developer.apple.com/thread/49676

最佳答案

我遇到了同样的问题,我发现当节标题为可变高度时,UITableView在设置插入/更新/删除行动画方面存在严重问题。只需将高度转换为某个常数,然后重试即可。

这实际上意味着删除estimatedSectionHeaderHeight

关于ios - 更新UITableView时,新可见行的单元格丢失而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40358487/

相关文章:

ios - 在表 View 单元格内设置集合 View 约束的正确方法

ios - 无论如何,有没有使用React Native将本地 Controller 呈现给TabBarIOS?

ios - 在Mapbox的导航 View 上添加自定义按钮

ios - iTunes API-如何判断Apple Music中是否有歌曲?

ios - 如何为UILocalNotification设置repeatInterval为每两天一次?

ios - UIPageControl选择点并转到该页面

ios - UITableViewCell缩进功能

iphone - performSegueWithIdentifier if语句不起作用

ios - 如何动态地将行添加到特定的UITableView节?

ios - 如何在ionic 2/3中上传图像服务器端