如何通过执行如下if语句来删除静态表视图单元格:
如果____ {
删除静态单元格
}其他{
将细胞保留在tableview中
}
粗体部分是我需要的代码。我在互联网上搜索了答案,但我找不到答案。谢谢您的帮助!我使用的是Swift 3
答案 0 :(得分:0)
首先,确保将单元格更改为具有动态属性,因为静态单元格是硬编码的。 其次,您不需要else语句。如果条件为真,则删除单元格,否则不执行任何操作。要删除单元格,请使用以下函数:
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
print("Cell deleted")
// delete any additional data from containers like arrays or dictionaries if needed
self.tableView.deleteRows(at: [indexPath], with: .automatic)
}
}
答案 1 :(得分:0)
如果这是静态tableview,则无法删除单元格。如果你试图你可能会陷入各种各样的问题。您最好的解决方案是将单元格的高度设置为零并隐藏它。
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = super.tableView(tableView, cellForRowAt:indexPath)
if indexPath == cellToHide {
cell.isHidden = true
}
return cell
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath == cellToHide {
return 0
}
return super.tableView(tableView, heightForRowAt: indexPath)
}