Я пытаюсь установить tableHeaderView
высоту на UILabel
, который я поместил внутрь.Но по какой-то причине у меня есть проблемы с ним, высота меньше, чем содержание ярлыка, и иногда ярлык не отображает полный текст.
Вот как это выглядит:
![enter image description here](https://i.stack.imgur.com/qcuNY.gif)
Вот как это должно выглядеть:
![enter image description here](https://i.stack.imgur.com/EugrK.png)
Это мой код:
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
}
}
Ресурс этого куска кода здесь .