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

iam*_*rak 2 uitableview ios swift uitableviewautomaticdimension

我刚刚尝试了下面的代码行,但无法正常工作。我想知道如何以编程方式为页眉或页脚提供这种情况,可能正在使用自动布局,我不知道到底哪一个解决了我的问题。我正在使用 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
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

orx*_*elm 5

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

您是否尝试过在那些 HeaderFooterViews 上使用 AutoLayout ?我将使用正确的约束设置 xib 的视图,然后:

self.tableView.estimatedSectionHeaderHeight = 100
self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension
Run Code Online (Sandbox Code Playgroud)