我有一个TableView footerView,带有两个可以容纳多行的标签。 我在viewDidLayoutSubviews中使用此代码:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
label1.preferredMaxLayoutWidth = tableView.frame.size.width - Constant.footerMarginSpace
label2.preferredMaxLayoutWidth = tableView.frame.size.width - Constant.footerMarginSpace
footerView.setNeedsLayout()
footerView.layoutIfNeeded()
footerView.frame.size.height = footerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
tableView.tableFooterView = footerView
}
当在显示视图之前设置标签值时,这样工作正常(标签最终将扩展到多个行并且视图的大小正在调整),但如果我在之后更新其内容,则视图赢了&#39 ; t更新其布局,即使使用tableView.reloadData()。
如果我在视图顶部推送另一个视图并将其关闭,则布局将是正确的。
更新TableView页脚的布局和大小的正确方法是什么?
答案 0 :(得分:0)
我认为根据您的数据计算您需要的线数并使用返回正确的高度可能更容易 tableView(_:heightForFooterInSection:)
调用reloadData
时,将调用此方法来布置tableview。