2

我想将多个静态表格视图单元格的高度更改为零并恢复正常。

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 值 & 上述方法适用于隐藏一个静态单元格。但它在返回一个值后停止。我想隐藏两个静态单元格并在我更改一个布尔值时将它们恢复正常。

4

2 回答 2

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/

于 2015-05-31T15:52:02.610 回答
0

您需要做的是在该函数中返回 0.1。0 是默认值(44 像素)。但是,您会发现这样做时会出现很多小问题。如:

  1. 重新加载后调整单元格大小时,它们的布局将错误。
  2. 当单元格应该被隐藏时,您有时可以在它们周围的单元格下看到它们的内容

我发现更好的解决方案是将(如果可能)将隐藏的单元格放入组中。然后在数据源中将隐藏时该部分的行数设置为 0。这种方法仍然存在问题,但没有那么多。

于 2015-03-12T16:00:39.217 回答