为什么分组部分中的第一个和最后一个单元格不使用分隔符插图?

问题描述 投票:0回答:1

我希望能够将所有分隔符插入表格视图中,以插入一定量。该表视图的每个部分都需要一个自定义标头。请参见下图以获取所需的插图:

enter image description here

我设置了故事板,因此我有了一个UIViewController,其中包含一个容器UIView,而该容器又为UITableView嵌入了一个序列。我的表格视图指定了一个原型单元,并且在情节提要中设置了具有自动插入功能的分组样式默认分隔符。

在情节提要中的表视图单元格上,我的左侧有一个自定义分隔符插图,为26。

在我的表视图控制器中,我实现了以下两种方法:

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: "ItemHeader") as! TableSectionHeaderViewCell
    header.title.text = "My Custom Date Header"
    return header
}

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

在一个单独的文件中,我将UITableViewHeaderFooterView子类化,以仅设置字体,文本颜色和一些约束。

现在,如果我在表格视图级别的情节提要上将自定义分隔符插入设置为从左侧向左插入26个,无论是从“单元格边缘”还是从“自动插入”,则出现在我每个标题下方的分隔符都不会改变。同样,如果我在表视图控制器的viewDidLoad方法中以编程方式设置这些值,如下所示:

override func viewDidLoad() {
    super.viewDidLoad()

    tableView.rowHeight = UITableView.automaticDimension
    tableView.register(TableSectionHeaderViewCell.self, forHeaderFooterViewReuseIdentifier: "ItemHeader")

    tableView.separatorInset = UIEdgeInsets(top: 0, left: 26, bottom: 0, right: 0)
    tableView.separatorStyle = .singleLine
    tableView.separatorInsetReference = .fromCellEdges
}

即使使用.fromAutomaticInsets选项作为分隔符插入参考,分隔符插入也不会改变。这是我实际上看到的:

enter image description here

似乎节中的第一个和最后一个单元格实际上不遵守分隔符插图。我本来以为这是与每个分组节都有标题相关的问题,但是在最后一个单元格中没有标题的分隔符似乎表明情况并非如此。如何使所有分隔符都插入26pts?感谢您提供的任何见解。

ios swift storyboard ios13
1个回答
1
投票

然后检查此线程,我认为它将有所帮助:

Grouped UITableview remove outer separator line

我可以看到他们删除了默认的分隔符(使用“透明颜色”,并为分隔符自己放置了自定义视图。

我可以建议的另一种选择是不使用组样式的表格视图,使用简单的表格视图并自行处理。

© www.soinside.com 2019 - 2024. All rights reserved.