TableView 中有多種單元格且高度不一致時,為了實現(xiàn)單元格的動態(tài)高度,需要做如下設(shè)置:
tableView.estimatedRowHeight = 100
tableView.rowHeight = UITableView.automaticDimension
或者直接重寫 UITableViewDelegate 代理中的如下方法:
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
retun 100
}
上述代碼的含義表示,我們需要使用自適應(yīng)高度,而不是給出具體的值。但是我們需要告訴它一個大概高度,例如上面的100,理論上這個是可以隨便寫的,并不影響顯示結(jié)果,但是越接近真實高度越好。
然后要做的事情就是 為單元格的內(nèi)容做好垂直方向的約束,讓 tableView 能夠根據(jù)約束信息推斷出單元格的高度。也就是說,在約束中單元格內(nèi)容的高度需要明確,且與單元格根視圖的間距約束也必須明確。