【问题标题】:Swift - Mix of Custom and default TableView HeadersSwift - 自定义和默认 TableView 标题的混合
【发布时间】: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
        }
    }

自定义标题工作正常。只是寻找调用什么来使用标准头。

谢谢

【问题讨论】:

    标签: swift uitableview


    【解决方案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()
    猜你喜欢
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多