这里我试图添加一个新行,但它崩溃并给出错误“尝试将第3行插入第2部分,但更新后第2部分只有3行”。最初emerCount是2,我试图添加第3行。
var index = NSIndexPath()
if (emerCount<3){
emerCount += 1
index = NSIndexPath(row: emerCount, section: 2)
self.profileTableView?.insertRows(at: [index as IndexPath], with: .automatic)
self.profileTableView?.reloadData()
}
答案 0 :(得分:0)
需要更多背景信息。您的数据源(numberOfRows(inSection:)
)方法中写了什么?您numberOfRows(inSection:)
似乎为该部分返回3,但您想再添加一行。
答案 1 :(得分:0)
删除此行:self.profileTableView?.reloadData()
答案 2 :(得分:0)
两个问题:
insertRows
之前,您必须将数据源数组中的项插入到同一位置(第2节中的索引emerCount
)。这是强制性的。reloadData()
之后立即致电insertRows
。插入行会使用动画更新表格视图。删除reloadData()
。进一步注意索引是从零开始的,第三行确实是在索引2处插入的。
PS:为什么表格视图是可选的?是以编程方式创建并暂时显示?并且不要在Swift 3中使用NSIndexPath
。