Xcode 8 中的“Vary for Traits”是什么?

2023-11-26

我正在使用 AutoLayout 和 Size 类,但随着 iOS 10 和新 Xcode 8.0 的发布,出现了一个新选项Vary for Traits。这是针对不同宽度和高度的设备的 Size Class 的替换吗?

enter image description here

通过选择width复选框,它显示varying 14 compact width devices.

enter image description here

通过选择height复选框,它显示varying 18 compact height devices.

enter image description here

通过选择两个复选框,它会显示varying 11 compact width regular height devices.

enter image description here

如何利用这个选项? 我们可以像 Xcode 7.0 一样使用具有尺寸类别的自动布局吗? 如果有人有深入的知识,请解释一下。


这只是如何在项目中快速使用“Vary Traits”为 iPad 和 iPhone 添加不同布局的扩展。

请阅读本文以了解有关尺寸类别的更多信息。

https://developer.apple.com/reference/uikit/uitraitcollection

enter image description here

如果您跳过下面的示例,请阅读最后的摘要。


  • 客观的 :

您需要一个在 iPhone 和 iPad 中具有不同宽度的按钮。前者的宽度为 80,后者的宽度为 300。

  • 方法一:

因安装时具有多个约束的特征而异。

  • STEPS :

    1. 首先添加常见约束,例如将按钮水平和垂直居中。

enter image description here

  1. 选择 VaryForTraits,对于 iPhone 屏幕,根据尺寸类别指南,C*R 尺寸类别适合模型,我们在 PopUp 中检查宽度和高度的刻度线。单击屏幕上的任意位置可关闭弹出窗口。

enter image description here enter image description here

  1. 添加宽度常数并检查是否为 C*R 尺寸等级添加约束。添加约束后,选择“完成变化”按钮。

enter image description here enter image description here

  1. 对于 iPad 屏幕,再次选择任何 iPad 设备并选择 VaryForTraits,这次单击高度-宽度时,它应该显示 R*R 变化。

enter image description here enter image description here

  1. 再次添加宽度约束,最后添加的 iPhone 宽度约束必须取消突出显示,如屏幕截图所示。此次增加的价值将针对尺寸等级 R*R。

enter image description here enter image description here

  1. 切换回 iPhone 布局,宽度为 80,iPad 为 300。

enter image description here

结论 :

请注意,总共添加了两个约束,并且在这两个约束中,值根据所选的尺寸类别而不同。


  • 方法2:

因安装单一约束、多个尺寸类别的特征而异

  • STEPS :
    1. 添加正常宽度约束。然后选择该约束并选择常量值旁边的 + 按钮。

enter image description here

  1. 添加性状变异,对于iPhone我们选择C*R并将常数值设置为100。

enter image description here enter image description here

  1. 同样,对于遵循 R*R 性状变异的 iPad,我们通过再次单击 + 按钮添加另一个变异,并将值设置为 300。

enter image description here enter image description here

  1. 选择iPad,宽度将自动取为300,返回iPhone则取100作为值。

enter image description here

结论 :

当仅需要单个约束并且常量值不同时,这似乎是比添加两个约束更好的选择。

何时使用、使用什么:

这两种方法基本上都在做同样的事情,即为 Size-class 设置值。

But, #Method1当您想要专门为设备或尺寸类别添加约束时使用。例如,在 iPhone 中,按钮应来自前 50 分,而在 iPad 中,按钮应水平和垂直居中。在这种情况下,您需要使用 VaryForTraits,因为它打开了为特定尺寸类别添加约束的大门。

#Method2当您需要为同一约束类型使用不同的常量值时使用。

P.S:对于所有无法使该示例运行的人

请确保您仅添加已安装所需的约束。 “已安装”复选框应仅针对尺寸类别所需的约束出现。这就是关键!

enter image description here

只需在视图中添加一个顶部约束和一个 uiButton 的引导线即可。选择顶部约束并取消选中带加号的基本已安装选项。现在,通过单击加号,为 C 添加变体R 并检查该选项。现在,将设备从 iPhone 更改为具有各种方向组合的 iPad。此约束仅适用于 CR 尺寸级别,即 iPhone 的纵向尺寸。如果选中基本已安装复选框(带有加号的复选框),则意味着该约束应应用于所有尺寸类别。

概括 :

特征变化是基于设备配置对用户界面的呈现方式的更改。用户界面的特征变化不仅限于约束,而且可以应用于更多。例如当设备设置为深色风格时更改背景和其他元素的颜色。变体可以应用于用户界面的元素,例如删除约束,或者应用于视图类或约束的属性,例如标签的字体。您可以改变:

  • 视图的大小或位置

  • 安装视图

  • 安装约束

  • 约束常数

  • Font

  • 字体、色调或背景的颜色

  • 布局边距

  • 图像文件

您可以更改的特定属性集取决于元素的类。在示例中,我们演示了使用 - 安装约束 & - 约束常量。其他的则相当简单,可以很容易地推断出来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xcode 8 中的“Vary for Traits”是什么? 的相关文章

随机推荐