是否有可能使用自动布局获得dynamic表视图节标题高度?
iOS 8新增function,您只需设置估计的行高即可获得100%的dynamic表格视图单元格,然后使用“自动布局”在单元格中布局元素。 如果内容的高度增加,细胞也会增加高度。 这是非常有用的,我想知道是否可以在表视图中的节标题完成相同的壮举?
例如,可以在tableView:viewForHeaderInSection:创buildUIView tableView:viewForHeaderInSection:添加一个UILabel子视图,为视图指定标签的自动布局约束,并使视图的高度适合标签的内容,而不必实现tableView:heightForHeaderInSection: 
  viewForHeaderInSection的文档声明:“只有当tableView:heightForHeaderInSection:也被实现时,这个方法才能正常工作。 我还没有听说iOS 8有什么变化。 
如果一个人不能这样做,模仿这种行为的最好方法是什么?
这个有可能。 这是iOS 8中实现的dynamic单元高度的新增function。
 这很简单。 只要在viewDidLoadjoin这个: 
 self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension; self.tableView.estimatedSectionHeaderHeight = 25; 
 然后覆盖viewForHeaderInSection并使用自动布局来约束视图中的元素。 完成。 无需实现heightForHeaderInSection 。 实际上, sectionHeaderHeight也不需要说明,我只是为了清楚起见而添加了它。 
 请注意,在iOS 11中,默认情况下,单元格和页眉/页脚视图使用估计的高度。 唯一要做的就是提供估计的高度,以便更好地告知系统预期的结果。 默认值是UITableViewAutomaticDimension但是你应该提供一个更好的估计值,如果可能的话,它将会是平均高度。 
 这可以通过设置(或返回)你的表视图上的estimatedSectionHeaderHeight来完成。 
  在设置estimatedSectionHeaderHeight , 如果您的部分标题与您的单元格重叠,请确保您使用的是estimatedRowHeight 。 
(我正在添加这个答案,因为第二段包含了一个问题的答案,可以在阅读所有可能错过的评论后find)。
我试过了
 self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension; self.tableView.estimatedSectionHeaderHeight = 25; 
但它没有用多行标签正确标题。 增加了这个来解决我的问题:
 override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) // Recalculates height tableView.beginUpdates() tableView.endUpdates() }