使用if语句从表视图中删除表视图单元格

时间:2017-05-14 11:28:05

标签: ios uitableview swift3

如何通过执行如下if语句来删除静态表视图单元格:

如果____ {

删除静态单元格

}其他{

将细胞保留在tableview中

}

粗体部分是我需要的代码。我在互联网上搜索了答案,但我找不到答案。谢谢您的帮助!我使用的是Swift 3

2 个答案:

答案 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)
}