ios - 为什么分组部分中的第一个和最后一个单元格不考虑分隔符插入?
问题描述
我希望能够将表格视图中的所有分隔符插入一定数量。此表视图需要每个部分的自定义标题。有关所需的插图,请参见下图:
我的故事板已设置好,因此我有一个 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?感谢您提供的任何见解。
解决方案
然后检查这个线程,我认为它会有所帮助:
我可以看到他们删除了默认分隔符(使用清除颜色)并为分隔符本身放置了一个自定义视图。
我可以建议的另一个选项是不要使用组样式表视图,使用普通的并自己处理。
推荐阅读
- r - 更改传单中 addLayersControl 的图形
- python - 如何在python中读取超过ram大小的内存地址
- c++ - 使用面向对象的 API 跨 DLL 边界的智能指针内存管理
- amazon-web-services - 如何收听来自 CLI 的 SNS 消息以测试它们是否已发送?
- json - json 到对象转换期间的异常:无法解析 'javaTypes' 中的 'json__TypeId__'
- java - Dropwizard Metrics 获取每个 REST 请求的平均项目
- charts - Chart.js 网格线不隐藏
- python - 使用 SentimentIntensityAnalyzer 时出现编码类型错误
- python - Python pd.read_csv、.to_sql 长度与实际数据不同
- java - 理解 C 中声明的数组的指针算法