这只是关于如何在您的项目中快速使用“Vary Traits”为 iPad 和 iPhone 添加不同布局的扩展。
请阅读本文以了解有关 Size 类的更多信息。
https://developer.apple.com/reference/uikit/uitraitcollection
如果您跳过下面的示例,请阅读最后的摘要。
您需要一个在 iPhone 和 iPad 中具有不同宽度的按钮。前者宽80,后者宽300。
因安装了多个约束的特征而异。
-
步骤:
- 首先添加常用约束,例如将按钮水平和垂直居中。
- 根据尺寸等级指南选择 VaryForTraits 和 iPhone 屏幕,C*R 尺寸等级适合模型,我们在 PopUp 中检查宽度和高度的刻度。单击屏幕上的任意位置关闭弹出窗口。
- 添加宽度常量并检查是否为 C*R 尺寸等级添加了约束。添加约束后,选择 Done Varying 按钮。
- 对于 iPad 屏幕,再次选择任何 iPad 设备并选择 VaryForTraits,这一次单击 height-width,它应该显示 R*R 变化。
- 再次添加宽度约束,最后添加的 iPhone 宽度约束必须像屏幕截图中那样不突出显示。这次增加的价值将是尺寸级别的 R*R。
- 切换回 iPhone 布局,宽度为 80,iPad 为 300。
结论:
请注意,总共添加了两个约束,并且在这两个约束中,值根据选择的大小等级而有所不同。
因安装了单一约束、多个 Size-Class 的特征而异
-
步骤:
- 添加正常宽度约束。然后选择该约束并选择常量值旁边的 + 按钮。
- 添加特征变异,对于 iPhone 我们选择 C*R 并将常量值设置为 100。
- 对于遵循 R*R 特征变体的 iPad,我们再次单击 + 按钮添加另一个变体并将值设置为 300。
- 选择一台iPad,宽度将自动取为300,返回iPhone时取100作为值。
结论:
这似乎是一个更好的选择,而不是在只需要一个约束并且常量值不同时添加两个约束。
何时使用,使用什么:
这两种方法基本上都在做同样的事情,将值设置为 Size-classes。
但是,#Method1 用于专门为设备添加约束或说尺寸等级。例如,在 iPhone 中,按钮应该来自前 50 分,而在 iPad 中,它应该水平和垂直居中。在这种情况下,您需要使用 VaryForTraits,因为它打开了为特定尺寸类添加约束的大门。
#Method2 用于同一约束类型的不同常量值。
P.S :致所有无法让示例运行的人
请确保您只添加了已安装所需的约束。对 Installed 的复选框应该只针对您需要的尺寸等级的约束出现。这才是关键!
只需在视图中添加一个顶部约束和一个指向 uiButton 的前导。选择顶部约束并取消选中带有加号的基本已安装选项。现在,通过单击加号,将变体添加到 CR 并选中该选项。现在,将设备从 iPhone 更改为具有各种方向组合的 iPad。此约束仅适用于 CR 尺寸类别,即 iPhone 纵向。如果选中了基本已安装(带有加号的那个)的复选框,则意味着该约束应应用于所有尺寸类别。
总结:
Trait Variation 是对基于设备配置的用户界面呈现方式的更改。 用户界面的 Trait Variations 不仅限于约束,还可以应用于更多方面。例如在设备设置为深色样式时更改背景和其他元素的颜色。变体可以应用于用户界面的元素,例如删除约束,或者应用于视图类或约束的属性,例如标签的字体。你可以改变:
视图的大小或位置
安装视图
安装约束
约束常数
字体
字体、色调或背景的颜色
版面边距
图像文件
您可以改变的特定属性集取决于元素的类。在示例中,我们演示了使用 - 安装约束和 - 约束常量。其他的则非常简单,可以很容易地推断出来。