如何使用嵌入表格的两个容器视图进行布局

Posted

技术标签:

【中文标题】如何使用嵌入表格的两个容器视图进行布局【英文标题】:How to layout with two container views with embedded tables 【发布时间】:2017-09-22 06:53:30 【问题描述】:

我正在尝试布局以下 UI 视图

主 UI 视图有两个容器视图。顶部容器视图嵌入了一个静态表控制器。底部容器视图嵌入了另一个我想要动态的表控制器。

如何设置布局,让顶部容器视图的高度等于顶部表格的高度,底部容器视图获得其余部分?

现在容器视图的高度不明确。

【问题讨论】:

“顶表的高度”是指所有单元格无需滚动即可显示的最小高度? 我认为您应该在顶部容器视图中添加一个高度约束,并在代码中为其添加一个出口。然后,在运行时,表格的 内容大小 并调整 cosntraint 的 constant。 ***.com/a/17939938/433373 顶表有 3 行,所以我希望显示它。底部表格可能有更多行..所以应该滚动(这是有道理的) 【参考方案1】:

将顶部表格视图的高度限制为某个固定值(无所谓)。

消除高度限制。

在您的视图控制器中,执行以下操作:

heightConstraint.constant = tableView.contentSize.height

这样底部视图会相应调整。

确保在顶部表格视图中禁用弹跳。

【讨论】:

这个。只要确保您在正确的时刻查询表的contentSize(请参阅我之前评论中链接的答案)。 @NicolasMiari 除了何时查询 contentSize 之外,我能够按照其他说明进行操作。 @rrevo 我链接的答案涉及如何强制表格视图更新其内容大小,以便查询值有效。看看吧。

以上是关于如何使用嵌入表格的两个容器视图进行布局的主要内容,如果未能解决你的问题,请参考以下文章

嵌入在容器中的 Swift 表格视图

如何使用自动布局在两个子视图控制器之间移动?

如何在具有自动布局的容器视图中将 UITableView 的大小设置为子视图

将导航控制器栏按钮与嵌入容器视图交互

将数据放入 UIView 容器的嵌入式表格视图中

使用自动布局进行编辑时在表格视图中调整子视图的大小