ios - 删除 UITableView 部分中的所有内容后结束编辑
问题描述
我的项目包含一个表格视图。此表视图由 2 个部分组成。第一部分包含一个不可编辑的单元格。第二部分由一个名为 data 的数组填充。
有一个按钮可以启动编辑模式并允许用户从第二部分删除内容。
当第二部分为空时,我正在尝试结束编辑模式,以便我可以选择第一部分中的单元格。(美学目的)
我的代码看起来像这样(简化的,不是实际的代码):
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
data.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .fade)
if(data.count==0) {
self.tableView.setEditing(false, animated: true)
self.tableView.selectRow(at: IndexPath(row: 0, section: 0), animated: false, scrollPosition: .top)
}
这会导致各种奇怪的错误。根据文档,预计会:
您不应在此方法的实现中调用 setEditing:animated:。如果出于某种原因必须,请在延迟后使用 performSelector:withObject:afterDelay: 方法调用它。
它有效,但我觉得这将是一个 hacky 解决方案。我不清楚为什么在删除所有内容后我不应该结束编辑。有人可以解释一下吗?或者也许还有其他选择?
解决方案
推荐阅读
- python-3.x - 数据帧到 csv 文件不包括数字(表中的浮点数)和清理 '\n'
- python - Django 验证返回两个错误而不是一个
- c# - C# Windows 窗体使用 SQLite 数据库,打开连接时为 NullReference
- database - 获取数据库连接错误。MariaDB 经常关闭。该怎么办?
- python - 将数字添加到列表中的重复字符串
- php - laravel 7 'laravel.password_resets' 不存在
- sql - Oracle 按问题分组 sql 查询
- arrays - 解释请求:有序数组查找非重复元素
- c# - Unity 从 Windows Store 加载证书
- javascript - 使用 JS 时表格的前两行在 Html 中不起作用