使用自动布局缩放垂直约束

Posted

技术标签:

【中文标题】使用自动布局缩放垂直约束【英文标题】:Scale vertical constraint with Autolayout 【发布时间】:2017-08-07 14:16:28 【问题描述】:

IB 中的布局构建目前在 iPhone 7 上看起来像这样:

但是,当我在限制条件下切换到 4s 时,它看起来像这样,内容挂在视图之外:

这就是它在 4s 上的样子:

是否可以使用 IB 和 Autolayout 来缩放垂直约束以使堆栈视图适合当前视图?

【问题讨论】:

你应该为最后一个视图设置一个底部约束。 @the4kman 如果我为最后一个视图设置底部约束,则其他约束不会缩放并且不明确 【参考方案1】:

因此,您有两种选择来执行您想做的事情。我将发布这些图片:

在这种情况下,我为所有视图指定了一个固定高度,除了其中一个(在底部)只有顶部、底部、左侧和右侧。

在这种情况下,您不能拥有具有完全相对约束的多个视图,因为在为这些视图提供布局时,操作系统将有多种值可供选择。由于这个范围,操作系统认为视图位置不明确。如果你给除了其中一个之外的所有一个固定高度,它会确切地知道给出剩余视图的高度。

您的另一种情况是给每个视图一个相对于上述视图和超级视图的顶部。据我了解,这告诉操作系统每个视图彼此之间的距离,以及距离屏幕顶部的距离。所以有了这两个值,它可以将视图放置在正确的位置。

就个人而言,我更喜欢使用第一种方式,我觉得它更简单。

【讨论】:

我没有在滚动视图中获得我的项目,我认为它与普通视图相同?我会在最底部的堆栈视图中添加底部约束吗? 对不起,我误解了滚动视图,我正在更新我的答案以考虑这一点。

以上是关于使用自动布局缩放垂直约束的主要内容,如果未能解决你的问题,请参考以下文章

ios 6:使用自动布局约束垂直居中 UILabel

以编程方式使用自动布局约束在视图中垂直对齐中间的子视图

如何使用固定宽度和自动布局正确缩放图像?

如何使用自动布局使两个标签垂直居中

自动布局忽略 UITableViewCell 内的垂直布局之一

在 IOS 中使用自动布局在邻居之间居中视图