swift tableView.contentSize.height 不同 iOS 13 和 iOS 11 ,为什么?

swift tableView.contentSize.height different iOS 13 and iOS 11 , why?

我的密码是

paymentTableviewHeight.constant = paymentTableView.contentSize.height

但不同的结果 iOS 版本。当我在 ios 11 上尝试时它工作正常,但 iOS 13 更短。

我已经使用以下代码解决了这个问题:

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    tableView.layoutIfNeeded()
    self.tblViewHtConst.constant = self.tableView.contentSize.height
}

调用tableView.layoutIfNeeded() UITableView会重新计算contentSize,然后可以设置高度限制。

如果在设置高度约束之前未调用 layoutIfNeeded(),它会选取在 estimatedRowHeight 中设置的值,在我的例子中,它比实际内容大小大,空白 space 可见。