如何设置根 Stack View 的乘数值(与超级视图的宽度相等,乘数为 0.7)iPhone 为 0.7,iPad 为 0.6?

How do I set multiplier value of root Stack View (equal width to super view with 0.7 multiplier) 0.7 for iPhones and 0.6 for iPads?

我为根堆栈视图做了一个基于百分比的宽度。

首先,我让根堆栈视图与超级视图的宽度相等,乘数为 0.7,以获得 70% 的子视图。然后水平居中 container.It 适用于所有 iPhone,但对于 iPad 来说更大。我想让乘数从 0.7 到 0.5 或 0.6,这样根视图就可以完美地显示在 iPad 上。

我没有在乘数旁边找到一个 +(加号)符号来创建它(iPad 的常规 - 常规)。

我只想让根堆栈视图为所有 iPhone 获得 60% 的超级视图宽度,为所有 iPad 获得 70% 的超级视图宽度。

有没有办法更改 iPhone 的乘数 0.7 和 iPad 的 0.6?

当然是!使用 Size classes 可以轻松实现,但不幸的是,您必须为不同的大小 class 添加另一个 constraint 而不是不同的 multiplier 对于相同的约束。

1) 假设您有这样的观点:

2) 你所要做的就是添加另一个 subview-superview equal-width 约束:

3) 获取冲突约束,当然:

4) 在新约束

上设置 iPad (0.6) 所需的乘数

5)棘手的部分:为除 Regual WidthRegular Height(iPad 大小 class)之外的所有大小 classes 启用旧约束,并且vise-versa 新约束:

5.1) 为第一个约束添加 wR hR "variation":

并禁用它:

对第二个约束执行相同的操作,但对 "install" 变体禁用它。

最后两个常量应该如下所示:

如您所见,如果我们预览 iPhone,我们只看到第一个约束被激活,在 iPad 预览中,我们只看到第二个约束被激活。