Swift - 如何动态修复UITableViewHeaderFooterView的高度大小?

时间:2016-06-11 07:46:35

标签: ios swift uitableview uitableviewautomaticdimension

我刚试过下面的代码行,但是我的工作不正常。我想知道如何以编程方式为页眉或页脚提供此案例,可能正在使用autolayout我不确切知道哪一个解决了我的问题。我正在使用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
        }
    }

}

1 个答案:

答案 0 :(得分:3)

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

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

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