【发布时间】:2017-10-11 12:14:26
【问题描述】:
我有一个带有两个标签的 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
}
当标签值在视图显示之前设置时,这工作正常(标签最终会分布在多行并且视图的大小正在调整),但如果我在之后更新它们的内容,视图将不会更新其布局,即使使用 tableView.reloadData()。
如果我将另一个视图推到我的视图之上,然后将其关闭,则布局将是正确的。
更新 TableView 页脚布局和大小的正确方法是什么?
【问题讨论】:
-
编辑后试试tableView.tableFooterView.layoutIfNeeded()。
标签: ios swift uitableview autolayout tableview