繁体   English   中英

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

[英]hide multiple cells heightForRowAtIndexPath static tableview swift

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

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/

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM