首页 > 解决方案 > swift tableView.contentSize.height iOS 13 和 iOS 11 不同,为什么?

问题描述

我的代码是

paymentTableviewHeight.constant = paymentTableView.contentSize.height

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

标签: iosswiftuitableviewtableviewios13

解决方案


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

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 中设置的值,在我的情况下,它很大,然后实际内容大小和空白空间可见。


推荐阅读