UITableView标头UITableViewAutomaticDimension无法正常工作

时间:2017-06-25 04:17:08

标签: swift uitableview

我想让我的tableview标题具有自动高度,因为我的标题视图中有标签,可以有多行文本。 我已经设置了以下步骤:

在视图中加载广告

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return UITableViewAutomaticDimension
    }

func tableView(_ tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat {
    return 200
}

但它仍然无效。 这是我的故事板配置(我将行设置为0,换行设置为自动换行。

另一个问题:我在TableViewCell顶部添加的自定义视图是否是标题单元格?

Here is my storyboard configuration

1 个答案:

答案 0 :(得分:0)

我最终使用方法计算标签的高度,并将高度添加到视图中。

private func heightForView(text: String, font: UIFont, width: CGFloat) -> CGFloat {
        let label = UILabel(frame: CGRect(x: 0, y: 0, width: width, height: CGFloat.greatestFiniteMagnitude))
        label.numberOfLines = 0
        label.lineBreakMode = NSLineBreakMode.byWordWrapping
        label.font = font
        label.text = text
        label.sizeToFit()

        return label.frame.height
}

在viewDidLoad()

let labelHeight = heightForView(text: post.content, font: contentLabel.font, width: contentLabel.frame.width)
headerView.frame.size.height = headerView.frame.size.height + labelHeight

仍然好奇为什么UITableViewAutomaticDimension在这种情况下不起作用。