在sectionHeader中自动调整字体大小

时间:2018-07-18 12:22:25

标签: ios swift uitableview tableview uitableviewsectionheader

我想在Tableview的Header部分显示名称和一些其他简短信息。

某些名称非常大,因此不适合使用,有没有一种方法可以像在带有标签的标签中那样自动调整sectionHeader中的字体大小:

label.adjustsFontSizeToFitWidth = true;

2 个答案:

答案 0 :(得分:2)

最简单的方法是在tableView(_:viewForHeaderInSection:)

中创建UILabel

Apple Docu讨论:

  

表视图对节标题使用固定的字体样式。如果   如果要使用其他字体样式,请返回自定义视图(例如,   UILabel对象)在委托方法中   tableView(_:viewForHeaderInSection :)代替。

答案 1 :(得分:0)

只需遵循自定义标题视图的代码-

  1. 设置tableView

    tableView.estimatedSectionHeaderHeight = 80 // You can change this value accordingly
    tableView.sectionHeaderHeight = UITableViewAutomaticDimension
    
  2. 实现您的自定义节标题并通过委托方法将其返回

    override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        switch section {
        case 0:
            return sectionHeader
        default:
            fatalError("Unreachable code")
       }
    }
    
  3. 最后,如果在显示标题时标题部分中的内容发生了更改,则更改之后,您将不得不告诉tableView使用

    重绘自身

    func refreshTableAfterCellExpansion() {
        self.tableView.beginUpdates()
        self.tableView.setNeedsLayout()
        self.tableView.endUpdates()
    }