【发布时间】:2018-12-14 09:31:36
【问题描述】:
我试图通过我放置在里面的UILabel 来设置tableHeaderView 的高度。但由于某种原因,我遇到了问题,高度小于标签的内容,有时标签不会显示全文。
看起来是这样的:
应该是这样的:
这是我的代码:
extension UITableView {
public func relayoutTableHeaderView() {
if let tableHeaderView = tableHeaderView {
let labels = tableHeaderView.findViewsOfClass(viewClass: UILabel.self)
for label in labels {
label.preferredMaxLayoutWidth = label.frame.width
}
tableHeaderView.setNeedsLayout()
tableHeaderView.layoutIfNeeded()
tableHeaderView.frame.size.height = tableHeaderView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
self.tableHeaderView = tableHeaderView
print(tableHeaderView.frame)
}
}
}
extension UIView {
public func findViewsOfClass<T:UIView>(viewClass: T.Type) -> [T] {
var views: [T] = []
for subview in subviews {
if subview is T {
views.append(subview as! T)
}
views.append(contentsOf: subview.findViewsOfClass(viewClass: T.self))
}
return views
}
}
这段代码的资源here。
【问题讨论】:
标签: ios swift uitableview autolayout constraints