隐藏多个单元格 heightForRowAtIndexPath static tableview swift

hide multiple cells heightForRowAtIndexPath static tableview swift

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

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

你需要做的是 return 0.1 在那个函数里。 0 是默认值 (44px)。 但是你会发现这样做的时候会出现很多小问题。如:

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

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

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/