如何使tableview单元格高度动态,我在单元格中有一个标签和一个图像,我的图像高度是恒定的70,标签高度取决于api文本,如果我的标签文本变大,那么图像视图的高度表视图单元格应该适应标签高度,否则图像视图。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
下面的图像只是选择图像的高度
根据UITableViewCells的内容动态设置UITableViewCells的高度,方法如下:
- 确保你的UITableViewCell的内容是受限的,这样的动态内容被固定在单元格的顶部和底部。
一个人造的单元格示例:
class Cell: UITableViewCell {
let label = UILabel()
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
// Allows your text to expand multiple lines
label.numberOfLines = 0
label.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(label)
// Constrains a UILabel to the edges of the UITableViewCells content view
label.topAnchor.constraint(equalTo: commentBox.topAnchor).isActive = true
label.bottomAnchor.constraint(equalTo: commentBox.bottomAnchor).isActive = true
label.leadingAnchor.constraint(equalTo: commentBox.leadingAnchor).isActive = true
label.trailingAnchor.constraint(equalTo: commentBox.trailingAnchor).isActive = true
}
}
如上所述,从
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
返回UITableViewAutomaticDimension
为了帮助你的UITableView计算动态高度,建议返回一个你认为你的单元格将会是的估计大小。
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat