UItableView动态高度取决于内容



如何使tableview单元格高度动态,我在单元格中有一个标签和一个图像,我的图像高度是恒定的70,标签高度取决于api文本,如果我的标签文本变大,那么图像视图的高度表视图单元格应该适应标签高度,否则图像视图。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}

下面的图像只是选择图像的高度

根据UITableViewCells的内容动态设置UITableViewCells的高度,方法如下:

  1. 确保你的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
}
}
  1. 如上所述,从func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat返回UITableViewAutomaticDimension

  2. 为了帮助你的UITableView计算动态高度,建议返回一个你认为你的单元格将会是的估计大小。func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat

相关内容

  • 没有找到相关文章

最新更新