阻止TableView backgroundView经过每个部分的最后一个单元格?

时间:2018-08-23 22:13:40

标签: ios swift uitableview background storyboard

我在UITableView中嵌套的UIViewController中有一个UITabBarController,其中有多个节,每个节都有一个自定义节头,它是UIView的子类。 UItableView具有在代码和情节提要中设置的所有适当的委托和数据源。

在代码中页脚已明确设置为0。

无论出于何种原因,似乎背景(下面的红色)都流过了每个部分中的每个UITableViewCell

我的UITableView当前如下所示:

我在情节提要中的表格视图设置如下:

最后,这是控制tableView的代码,在UITableView子类上以扩展形式编写:

extension TestViewController: UITableViewDelegate {
 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 64
}

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

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

extension TestViewController: UITableViewDataSource {

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


    let view = TestHeaderView()
    view.setLabelWithValues(valueType: "Example", amount: 1)
    return view
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 2
}

func numberOfSections(in tableView: UITableView) -> Int {
    return 3
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "TestCell", for: indexPath) as! TestTableViewCell
    cell.testLabel?.text = "example"
    cell.testLabel2?.text = "example"
    cell.testLabel3?.text = "example"
    return cell
}

}

如何防止背景越过单元格的每个部分?

1 个答案:

答案 0 :(得分:1)

想通了:

好像我必须在情节提要板大小检查器列中将页脚大小设置为0(然后默认为1):

enter image description here

这将保留页脚的单个像素宽度,因此将背景色切换为您的单元格是什么。