自动布局视图以占用所有可用空间

Posted

技术标签:

【中文标题】自动布局视图以占用所有可用空间【英文标题】:Autolayout a view to take up all space available 【发布时间】:2014-11-11 16:40:40 【问题描述】:

我正在尝试使用自动布局在 View Controller 中设置 TableView(或任何视图)。对于所有配置,我希望视图占用整个可用空间。

我尝试了各种方法,尝试搜索任何解决方案,但还没有找到实现这一目标的直接方法。

这可能吗?如果是的话,谁能帮我指点一下?

添加更多细节:

附件是一个嵌入在 TabBar 控制器项中的 TableView 的屏幕截图。我四面都有 4 个引脚,距离为 0,优先级为 1000。

但是,我可以看到橙色线条,看起来像是缺少约束。我错过了什么?

另外,当我在 iPhone 模拟器上运行它时,表格视图并没有像我希望的那样呈现。这是截图。

table view 没有向两边延伸,边距也不同。

【问题讨论】:

只需将视图的每条边约束到视图控制器的视图,距离为 0,优先级为 1000。 我已经更新了我的答案。立即尝试。 【参考方案1】:

在您的故事板中,只需选择 TableView 并添加 4 个引脚约束。一个用于父视图的所有边缘。 按照下图,确保Constrain to margins未勾选

然后,如果您看到相同的橙色约束,只需单击右下角的第三个约束按钮并选择Update Frames,如下图

尝试添加一些数据源以在模拟器上查看真实结果。如果您放置一些数据,右侧的多余空间将消失。相反,左侧的空格是默认行为。

【讨论】:

嗯。似乎工作。但我仍然在左边得到额外的边距,但在右边没有边距。这看起来很奇怪,而且不像默认行为。 是的。尝试在您的设备中打开其他 tableview 应用程序。这是默认行为... 哦!!!。这对我来说是个新闻 :) 抱歉,我刚刚开始使用自动布局和 ios8。

以上是关于自动布局视图以占用所有可用空间的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 上使用自动布局如何指定视图应占用尽可能多的空间?

无法将 iOS 自动布局乘数设置为零

尝试理解 iOS 8 中的 UIScrollView 自动布局

如何使用自动布局对子视图进行编程以占用其父视图宽度的 50% 但保持恒定高度?

剩余空间中的自动布局居中视图(以编程方式)

iOS自动布局:相等的空间以适应超级视图宽度[重复]