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