PrototypeCell

时间:2018-10-08 17:38:52

标签: ios swift uitableview

我有一个UITableView,包含2个部分,第一个是显示SegmentControl,第二个是显示我的数据。第2部分没问题,但是在SegControl的剖视图中,组件的高度不合适。

StoryBoard

enter image description here

结果:在单元格UISegmentedControl下方显示空白区域。

enter image description here

我尝试了多种方法来解决此问题:

   func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    if indexPath.section == 1 {
        return 100
    }
    return 44.0
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 0.0
}

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    return UIView()
}

func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {

    if section == 0 {
        return nil
    }
    .
    .
    }

编辑

我发现此空白是页脚,但我不知道该如何隐藏。

enter image description here

        func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
        let view = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
        view.backgroundColor = UIColor.red
        return view
   }

2 个答案:

答案 0 :(得分:0)

更新: 该页脚视图会增加额外的空间,而不是单元格本身。

使用heightForFooterInSection。以下代码应该可以解决您的问题。

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    if section == 0 {
      return 0
    }
    return UITableView.automaticDimension
}

答案 1 :(得分:0)

我发现问题出在本节的页脚,所以我这样做:

func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    if section == 0 {
        return 0
    }
    return UITableViewAutomaticDimension
}

并解决了我的问题。