是否可以在UITableViewHeaderFooterView中使用多行textLabel(不使用自定义UILabel)?

Gar*_*nes 11 iphone uitableview ios swift

我正在尝试使用内置textLabelUITableViewHeaderFooterView按顺序显示标题的节标题UITableView.

这些标题的内容量未知,因此需要涵盖多行.

如果这是一个表格单元格,那么myCell.numberOfLines = 0它将起作用(以及estimatedHeightForRowAtIndexPath返回UITableViewAutomaticDimension).但我无法得到任何与表头相似的东西.

我尝试过textLabel.numberOfLines = 0进入viewForHeaderInSection和/或进入willDisplayHeaderView.我也尝试在我创建的自定义子类中设置头文件正在使用(设置为let sectionHeader = tableView.dequeueReusableHeaderFooterViewWithIdentifier("myIdentifier") as MyTableSectionHeaderSubclass).在该子类我试过设置textLabel.numberOfLines = 0init功能,以及在layoutSubviews()

我已经通过计算文本字符串占用的空间量来设置每个标题的正确高度(使用CGSizeMakein heightForHeaderInSection,如果有任何帮助,可以提供更多关于此的信息).因此,标签有足够的垂直空间可以扩展 - 它们只是卡在一条线上,文字被截断并以省略号结尾.

我正在尝试这种方法,以避免使用自定义UILabel来显示标题.虽然我可以通过这种方式应用多行,但这会带来其他问题,例如在添加或删除表行时标签位置/帧丢失.

有没有人知道如果使用UITableViewHeaderFooterView内置的多行文本是否可行textLabel?或者是UILabel我自己的唯一选择?

非常感谢!

Grz*_*ski -3

使用这个:

self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension
Run Code Online (Sandbox Code Playgroud)

请记住,自动调整大小仅适用于:

lineBreakMode="tailTruncation" 
numberOfLines="0"
Run Code Online (Sandbox Code Playgroud)

执行此操作时,请确保单元格内的 contentView 约束设置为与文本字段相关的顶部、左侧、底部、右侧。

这样,iOS 就会将单元格的大小调整为文本字段的大小。