Swift - 自定义和默认 TableView 标题的混合
Posted
技术标签:
【中文标题】Swift - 自定义和默认 TableView 标题的混合【英文标题】:Swift - Mix of Custom and default TableView Headers 【发布时间】:2021-11-01 22:28:20 【问题描述】:在表格视图中,我想要 1 个自定义标题,其余的作为默认样式,但我不确定如何指定默认标题。到目前为止,我有:
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
if section == 1
self.view.addSubview(viewDimensionHeader)
return viewDimensionHeader // Works great
else
let view = UIView() // Not sure how to return default section header
return view
自定义标题工作正常。只是寻找调用什么来使用标准头。
谢谢
【问题讨论】:
【参考方案1】:返回UITableViewHeaderFooterView
的实例以获取默认页眉/页脚。然后您可以在标准视图上设置背景/文本等。
注意:您确实应该使用 tableView 注册所有页眉和页脚视图(就像对 tableView 单元格一样):
tableView.register(viewDimensionHeader.self, forHeaderFooterViewReuseIdentifier: "CustomHeaderCell")
然后您可以将它们出列(重用)以提高性能:
let headerCell = tableView.dequeueReusableHeaderFooterView(withIdentifier: "CustomHeaderCell")
另外请注意,您不应该将标题视图添加为主视图的子视图 - tableView 会为您处理这些,将其添加为自己的子视图。只需返回单元格即可。
【讨论】:
完美!感谢您提供有关注册的提示,并且在其他地方提到了 addSubview,但我也会摆脱它。干杯!【参考方案2】:在您的 Tableview 中设计单元格,就像附加的屏幕截图一样,然后在标题中使用您想要的单元格:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
let cell = tableView.dequeueReusableCell(withIdentifier: "headerCell") as! CartOrderHeaderTableViewCell
cell.packageNameLabel.text = self.tableArray[section].package ?? "N/A"
return cell.contentView
这是在 UITableView 中使用自定义单元格和不同单元格的最简单方法
【讨论】:
感谢您的回复,但是您误解了如何使用默认 / 系统标头的问题。上面回答return UITableViewHeaderFooterView()
以上是关于Swift - 自定义和默认 TableView 标题的混合的主要内容,如果未能解决你的问题,请参考以下文章
在不同的引脚上显示自定义和默认标注视图,并在地图视图上进行引脚聚类
Swift CoreData:无法使用带有自定义功能的 sectionNameKeyPath 对 tableView 进行分区