首页 > 解决方案 > 为什么分组部分中的第一个和最后一个单元格不考虑分隔符插入?

问题描述

我希望能够将表格视图中的所有分隔符插入一定数量。此表视图需要每个部分的自定义标题。有关所需的插图,请参见下图:

在此处输入图像描述

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

在情节提要的表格视图单元格中,左侧有一个 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分隔符插入参考的选项,分隔符插入也没有任何变化。这是我实际看到的:

在此处输入图像描述

似乎一个部分中的第一个和最后一个单元格实际上不尊重分隔符插图。我最初认为这是一个与每个分组部分都有一个标题有关的问题,但最后一个单元格上没有标题的分隔符似乎表明并非如此。我怎样才能使这些分隔符全部插入 26pts?感谢您提供的任何见解。

标签: iosswiftstoryboardios13

解决方案


然后检查这个线程,我认为它会有所帮助:

分组 UITableview 删除外部分隔线

我可以看到他们删除了默认分隔符(使用清除颜色)并为分隔符本身放置了一个自定义视图。

我可以建议的另一个选项是不要使用组样式表视图,使用普通的并自己处理。


推荐阅读