在 sectionHeader 中自动调整字体大小
Posted
技术标签:
【中文标题】在 sectionHeader 中自动调整字体大小【英文标题】:Auto resize font in sectionHeader 【发布时间】:2018-07-18 12:22:24 【问题描述】:我想在我的 Tableview 的 sectionHeader 中显示一个名称和一些其他简短信息。
有些名字非常大,所以不适合,有没有办法像在标签中一样自动调整 sectionHeader 中的字体大小:
label.adjustsFontSizeToFitWidth = true;
【问题讨论】:
【参考方案1】:最简单的方法是在tableView(_:viewForHeaderInSection:)
中创建一个UILabel
Apple Docu 讨论:
表格视图对节标题使用固定字体样式。如果 你想要一个不同的字体样式,返回一个自定义视图(例如,一个 UILabel 对象)在委托方法中 tableView(_:viewForHeaderInSection:) 代替。
【讨论】:
【参考方案2】:只需按照自定义标题视图的代码 -
设置表格视图
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()
【讨论】:
以上是关于在 sectionHeader 中自动调整字体大小的主要内容,如果未能解决你的问题,请参考以下文章