在我的tableHeaderView
我有UILabel
根据其文字调整大小。使用一些文本可以使用,而其他文本则不然。
不工作的例子:没有十二
工作示例:从1到15的所有内容
这是我使用的代码:
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self
self.tableView.dataSource = self
self.testLabel.preferredMaxLayoutWidth = self.tableView.frame.width - 30.0
self.headerView = self.tableView.tableHeaderView
self.tableView.tableHeaderView = nil
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
guard self.tableView.tableHeaderView == nil else { return }
self.headerView.setNeedsUpdateConstraints()
self.headerView.updateConstraintsIfNeeded()
self.headerView.frame = CGRect(x: 0, y: 0, width: tableView.bounds.width, height: CGFloat.greatestFiniteMagnitude)
var newFrame = self.headerView.frame
self.headerView.setNeedsLayout()
self.headerView.layoutIfNeeded()
let newSize = self.headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize)
newFrame.size.height = newSize.height
self.tableHeaderHeight = newSize.height
self.headerView.frame = newFrame
self.tableView.tableHeaderView = self.headerView
}