隐藏我表格中的特定单元格

时间:2016-12-08 19:37:14

标签: swift uitableview

我试图在表格视图中隐藏特定的单元格?

private var yourDataSource = [AccountData.AllTasksDB] //A Json Array originally

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
    var rowHeight:CGFloat = 72

    //AccountData.AllTasksDB[indexPath.row]["importantvariable"]
    if (self.yourDataSource[indexPath.row]["importantvarible"] == "0")
    {
        print("Cell is mine")
        rowHeight = 0
    }
    else
    {
        print("Cell is not mine")
        rowHeight = 72.0
    }

    return rowHeight
}

谁能告诉我自己做错了什么?我以为它是循环遍历每个单元格并检查我手头设置的值。但它似乎并不想访问它。

2 个答案:

答案 0 :(得分:0)

您正在使用tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath)方法访问单元格。 此时,细胞尚未可见(或出列)。如果单元格不可见,它将为零,因此您的错误。

尝试在let cell = tableView.cellForRowAtIndexPath(indexPath) as! TableViewCellMyTasks处设置一个断点,你会发现它是零。

答案 1 :(得分:0)

我认为这在答案中会更清晰

fileprivate var yourDataSource = [YourObject]()

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

  if self.yourDataSource[indexPath].isMine == true {

    return 0
  }
  else
  {
    return 72.0    //or whatever you like
  }
}