如何获取UITableView内容大小?

时间:2019-01-30 04:55:40

标签: swift uitableview

我需要查找表视图内容的大小,因为我需要根据行数增加表的高度。我使用表格视图自动尺寸来自动增加基于单元格高度的单元格内容。因此,我过去通常是在表格视图完全加载后才找到表格内容的大小,然后我们可以调整表格视图的大小。

我使用下面的代码来获取表格视图的内容大小,

  Print(tableview.contentSize)

,但是尺寸错误。因此,我研究了一些链接,然后发现了这个https://forums.developer.apple.com/thread/81895。在该链接中,您可以看到Apple表示我们需要将估计的桌子高度提到为0,以获取正确的桌子视图内容大小。但这又使内容大小错误。例如,

表视图加载5行,内容大小高度为100.0表示,但仅给出80.0。我不知道如何找到确切的表格视图内容大小。你能帮上忙吗?

2 个答案:

答案 0 :(得分:0)

如果有任何UIView继承UIScrollView,则可以在contentSize下轻松获得更新的viewDidLayoutSubviews

override func viewDidLayoutSubviews() {
    debugPrint("Updated Contensize \(tableView.contentSize)")
}

答案 1 :(得分:0)

您应该为 tableView高度限制设置出口,并在UIViewController中覆盖 updateViewConstraints ()方法。

override func updateViewConstraints() {
tableHeightConstraint.constant = tableView.contentSize.height
super.updateViewConstraints()

}

谢谢