调整容器视图的高度以匹配子视图的高度

Posted

技术标签:

【中文标题】调整容器视图的高度以匹配子视图的高度【英文标题】:Adjusting Container View's height to match height of child's subview 【发布时间】:2018-02-01 19:54:25 【问题描述】:

在我的项目中,我有一个容器视图,其中嵌入了一个标签栏控制器,其中标签栏的项目视图每个都只包含一个表格视图。

(在上图中,底部 UIView 是容器视图,其中嵌入了标签栏的 segue,顶部 UIView 只是一些其他内容)

我的上述设置工作正常,但我想要实现的是调整容器视图的高度以匹配选项卡栏的所选项目中的表格视图的高度。

这样做的原因是我想在容器视图下方放置更多内容并希望新内容非常接近容器视图的内容但有时显示的表格视图只有几行并且有容器视图中有大量未使用的空间需要修剪。

在上图中,容器视图处于带有附加内容的滚动视图中,如果容器视图显示的表格小于预期,则需要删除剩余空间,因此两者之间似乎没有很多空白表格和附加内容。

【问题讨论】:

【参考方案1】:

对此的解决方案是维护对每个选项卡项的引用,从而维护其中的表格。

要获得prepare(for segue: ) 中的引用,请遍历所有tabBar.viewControllers 并在那里创建引用。

获得参考后,您可以通过viewController.tableView.frame.height 获取表格视图的高度,并且无论何时选择选项卡,都可以根据表格高度调整容器视图的大小。

【讨论】:

以上是关于调整容器视图的高度以匹配子视图的高度的主要内容,如果未能解决你的问题,请参考以下文章

Android子视图高度与ListView项目中的父级不匹配

NSLayoutConstraint 子视图不会自动调整大小以适应容器视图

根据最高子视图按钮自动调整超级视图高度

当父容器视图约束以编程方式更改时,UINavigationController 子视图不调整大小

约束 UICollectionView 高度以匹配内容的高度

设置表格视图单元格的高度以匹配底部到标签栏顶部