我想让我的tableview标题具有自动高度,因为我的标题视图中有标签,可以有多行文本。 我已经设置了以下步骤:
在视图中加载广告
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return UITableViewAutomaticDimension
}
func tableView(_ tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat {
return 200
}
但它仍然无效。 这是我的故事板配置(我将行设置为0,换行设置为自动换行。
另一个问题:我在TableViewCell顶部添加的自定义视图是否是标题单元格?
答案 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
在这种情况下不起作用。