Swift - 如何动态固定 UITableViewHeaderFooterView 的高度大小?

Swift - How dynamically fixed UITableViewHeaderFooterView height size?

我刚刚尝试了以下代码行,但无法正常工作。我想知道如何以编程方式为页眉或页脚提供这种情况,可能正在使用自动布局我不知道到底是哪一个解决了我的问题。我正在使用 UITableViewHeaderFooterView 的 xib 文件。

如果有人解释我会很棒。

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    // Dynamic sizing for the footer view
    if let footerView = tableView.tableFooterView {
        let height = footerView.systemLayoutSizeFittingSize(UILayoutFittingCompressedSize).height
        var footerFrame = footerView.frame

        if height != footerFrame.size.height {
            footerFrame.size.height = height
            footerView.frame = footerFrame
            tableView.tableFooterView = footerView
        }
    }

}

UITableView 在显示之前会计算 HeaderFooter,如果不再次调用 reloadData() 就无法更新该高度。

您是否尝试过在这些 HeaderFooterView 上使用 AutoLayout? 我会使用正确的约束设置来自 xib 的视图,然后:

self.tableView.estimatedSectionHeaderHeight = 100
self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension