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 进行分区

如何传递 Paypal ipn 自定义和发票变量?

OSSIM入门视频推出WebUI菜单自定义和汉化方法视频教程

PHP 发送带有自定义和回复的UTF-8编码邮件

如何多次自定义和使用同一个 html 表格?