【发布时间】:2017-09-20 14:57:18
【问题描述】:
我有简单的 UITableViewController。
查看标题。从xib初始化。 和单一类型的细胞。
通过滑动删除单元格后,上面删除的单元格在 HeaderView 上方可见,而其他单元格只是隐藏在 HeaderView 下方。
如果以上内容不清楚,请询问。
【问题讨论】:
标签: ios swift uitableview ios11
我有简单的 UITableViewController。
查看标题。从xib初始化。 和单一类型的细胞。
通过滑动删除单元格后,上面删除的单元格在 HeaderView 上方可见,而其他单元格只是隐藏在 HeaderView 下方。
如果以上内容不清楚,请询问。
【问题讨论】:
标签: ios swift uitableview ios11
我认为这应该解决它:
tableView.sendSubview(toFront: tableView.headerView(forSection: 0)!)
(假设您只有 1 个部分)
您可以在删除单元格后设置此项,例如在commitEditingStyle中。
【讨论】:
找到了解决办法。
func deleteItem(from indexPath: IndexPath, tableView: UITableView) {
cellsData.remove(at: indexPath.row)
CATransaction.begin()
tableView.beginUpdates()
CATransaction.setCompletionBlock {
tableView.reloadData()
}
tableView.deleteRows(at: [indexPath], with: .left)
tableView.endUpdates()
CATransaction.commit()
}
tableView.reloadData() 的作用是修复 headerView 上方出现的单元格,但会杀死动画。所以如果你不关心动画,你可以只添加 reloadData()。
【讨论】: