【问题标题】:Auto resize font in sectionHeader在 sectionHeader 中自动调整字体大小
【发布时间】:2018-07-18 12:22:24
【问题描述】:

我想在我的 Tableview 的 sectionHeader 中显示一个名称和一些其他简短信息。

有些名字非常大,所以不适合,有没有办法像在标签中一样自动调整 sectionHeader 中的字体大小:

label.adjustsFontSizeToFitWidth = true;

【问题讨论】:

    标签: ios swift uitableview tableview uitableviewsectionheader


    【解决方案1】:

    最简单的方法是在tableView(_:viewForHeaderInSection:)中创建一个UILabel

    Apple Docu 讨论:

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

    【讨论】:

      【解决方案2】:

      只需按照自定义标题视图的代码 -

      1. 设置表格视图

        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()
        }
        

      【讨论】:

        猜你喜欢
        • 2017-03-26
        • 1970-01-01
        • 2021-11-24
        • 2011-02-28
        • 2011-02-07
        • 1970-01-01
        • 2011-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多