我想在Tableview的Header部分显示名称和一些其他简短信息。
某些名称非常大,因此不适合使用,有没有一种方法可以像在带有标签的标签中那样自动调整sectionHeader中的字体大小:
label.adjustsFontSizeToFitWidth = true;
答案 0 :(得分:2)
最简单的方法是在tableView(_:viewForHeaderInSection:)
Apple Docu讨论:
表视图对节标题使用固定的字体样式。如果 如果要使用其他字体样式,请返回自定义视图(例如, UILabel对象)在委托方法中 tableView(_:viewForHeaderInSection :)代替。
答案 1 :(得分:0)
只需遵循自定义标题视图的代码-
设置tableView
tableView.estimatedSectionHeaderHeight = 80 // You can change this value accordingly
tableView.sectionHeaderHeight = UITableViewAutomaticDimension
实现您的自定义节标题并通过委托方法将其返回
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
switch section {
case 0:
return sectionHeader
default:
fatalError("Unreachable code")
}
}
最后,如果在显示标题时标题部分中的内容发生了更改,则更改之后,您将不得不告诉tableView使用
重绘自身
func refreshTableAfterCellExpansion() {
self.tableView.beginUpdates()
self.tableView.setNeedsLayout()
self.tableView.endUpdates()
}