TableView 中有多种单元格且高度不一致时,为了实现单元格的动态高度,需要做如下设置:
tableView.estimatedRowHeight = 100
tableView.rowHeight = UITableView.automaticDimension
或者直接重写 UITableViewDelegate 代理中的如下方法:
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
retun 100
}
上述代码的含义表示,我们需要使用自适应高度,而不是给出具体的值。但是我们需要告诉它一个大概高度,例如上面的100,理论上这个是可以随便写的,并不影响显示结果,但是越接近真实高度越好。
然后要做的事情就是 为单元格的内容做好垂直方向的约束,让 tableView 能够根据约束信息推断出单元格的高度。也就是说,在约束中单元格内容的高度需要明确,且与单元格根视图的间距约束也必须明确。