如何在 StackView 中设置等宽或等高?

Posted

技术标签:

【中文标题】如何在 StackView 中设置等宽或等高?【英文标题】:How to Set Equal Width or Equal Height in StackView? 【发布时间】:2016-10-06 02:29:15 【问题描述】:

我这里有六个标签,每两个标签在水平视图中堆叠,所有水平视图在垂直视图中堆叠,如下所示

这就是我想要的:无论每个标签的内容如何,​​我都想将 Label1 的宽度设置为 Label2 的 30%

外部堆栈视图设置为 Aligment:Fill, Distribution:Fill Equally

所有内部堆栈视图都设置为 Aligment:Fill, Distribution:Fill

我已将 Label1 的拥抱设置为 250,并将 Label2 设置为默认值(其他人也是如此)。

我正在尝试在图 2 中通过 Equal Widths 设置宽度。但它未被选中

我该怎么办?更喜欢在情节提要中完成所有工作,但也可以在代码中解决。


解决方案:只需要同时选择两个标签来添加约束,如下 Solution image

【问题讨论】:

【参考方案1】:

IMO,Stack View 不允许为其中的视图提供一些固定的帧大小,我们可以使用可用属性在一定程度上对其进行控制。 Stack View 旨在将类似类型的内容限制在一个视图中。

选项:

将您的标签放在一个视图(内容视图)中。 设置右标签的宽度等于左标签,设置乘数为0.30

【讨论】:

如果您需要更多帮助,请告诉我,我只提到了一个限制。 我在Inner1StackView中放了一个空的View,但是等宽约束还是无法选择。请您详细描述一下好吗?谢谢 暗视图是 UIView,我的意思是我们无法使用 UIStackView 来实现。 :) @Stanley 要访问等宽约束,您需要选择两个标签(使用Command-click)。这是有道理的,因为相等是一个双参数运算符。 :-) @Mr.Bista 感谢您的回复,但似乎我只需要同时选择两者来设置约束,它适用于Label3Label4。我将在问题中发布我的解决方案

以上是关于如何在 StackView 中设置等宽或等高?的主要内容,如果未能解决你的问题,请参考以下文章

在 Stackview 中设置项目的 ID

如何在IOS的UIStackView中设置权重

如何在 fontconfig 中设置每个 Unicode 范围/代码点的字体?

等宽和设置优先级的自动布局

如何在 ios swift 中以编程方式创建自动布局等宽约束?

自定义等高 Cell