使用动态rowHeight

时间:2017-04-27 11:00:25

标签: ios

不知何故,我陷入了需要在ViewController的viewDidLoad中计算表总高度的情况。

我有一个带有scrollView的viewController,在scrollView中我有两个包含TableViewController子类的容器视图,现在我已经关闭那些tableViews的滚动,因为这些表中不会有很多单元格。我在这两个容器视图之间和之下有一些固定大小的其他视图,所有这些视图都堆叠在垂直堆栈视图中。为了调整此堆栈视图和scrollView的大小,我需要容器视图的大小,因为所有其他大小都是固定的。

所以我想计算容器视图中表的总高度。有没有办法计算它们的大小?我正在使用AutoLayout。

2 个答案:

答案 0 :(得分:0)

这很难做到,因为一旦创建了表视图的所有单元格,您就需要这样做,因此表视图最初必须足够大。然后就是知道什么时候完成的问题。你需要使用UITableViewControllers吗?在这种情况下,我会将UITableViewCell xibs转换为普通视图xibs,或者将它们写入代码并以编程方式将它们添加到容器视图中。然后你可以强制布局,这样你就可以获得高度。或者甚至更好,在这种情况下你可能不需要高度,你只需让自动布局为你完成所有工作。

答案 1 :(得分:0)

试试这个:

func viewDidLayoutSubviews(){
     tableView.frame = CGRect(x: tableView.frame.origin.x, y: tableView.frame.origin.y, width: tableView.frame.size.width, height: tableView.contentSize.height)
     tableView.reloadData()
}