隐藏多个单元格heightForRowAtIndexPath静态tableview swift

时间:2015-03-12 15:50:12

标签: ios uitableview swift heightforrowatindexpath

我想将多个静态tableview单元格的高度更改为零&恢复正常。

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if reminderHidden && indexPath.section == 1 && indexPath.row == 1 {
        return 0
    }
    else {
        return super.tableView(tableView, heightForRowAtIndexPath: indexPath)
    }
}

我可以更新bool值&上述方法适用于隐藏一个静态单元格。但它在返回一个值后停止。我想隐藏两个静电电池&当我改变一个bool值时,让它们恢复正常。

2 个答案:

答案 0 :(得分:3)

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if indexPath.row == 1 && toggle.on == false {
        return 0.0
    }
    if indexPath.row == 2 {
        if toggle.on == false || pickerVisible == false {
            return 0.0
        }
        return 165.0
    }
    return 44.0
}

有关更多详细信息,请访问我的博客:

http://blog.apoorvmote.com/how-to-show-and-hide-static-cells-with-uiswitch/

答案 1 :(得分:0)

您需要做的是在该函数中返回0.1。 0是默认值(44px)。 但是,在执行此操作时,您会发现存在许多小问题。如:

  1. 重新加载后调整单元格大小时,它们将被错误地布置。
  2. 当细胞被隐藏时,你有时可以在它们周围的细胞下看到它们的内容
  3. 我发现更好的解决方案是将(如果可能的话)放入将被隐藏到组中的单元格。然后在数据源中将隐藏时该行的行数设置为0。这种方法仍然存在问题,但不是很多。