我正在使用 AutoLayout 和 Size 类,但是随着 iOS 10 和新 Xcode 8.0 的发布,有一个新选项 Vary for Traits
。这是针对不同宽度和高度的设备替换 Size Classe 吗?
通过选择 width
复选框,它显示 varying 14 compact width devices
。
通过选择 height
复选框,它显示 varying 18 compact height devices
。
通过选择两个复选框,它会显示 varying 11 compact width regular height devices
。
如何利用这个选项?
我们可以像 Xcode7.0 一样使用 AutoLayout 和 size classes 吗?
如果有人有深入的知识,那么请解释一下。
最佳答案
这只是关于如何在项目中快速使用“Vary Traits”为 iPad 和 iPhone 添加不同布局的扩展。
请阅读本文以了解有关 Size 类的更多信息。
https://developer.apple.com/reference/uikit/uitraitcollection
如果您要跳过下面的示例,请在最后阅读摘要。
你需要一个在 iPhone 和 iPad 上有不同宽度的按钮。前者宽度为 80,后者宽度为 300。
因安装时具有多个约束的特征而异。
结论:
请注意,总共添加了两个约束,并且在这两个约束中,值根据选择的大小级别而有所不同。
具有单一约束的特征不同,安装了多个大小类
结论:
当只需要一个约束并且常量值不同时,这似乎是一个更好的选择,而不是添加两个约束。
何时使用,使用什么:
这两种方法基本上都在做同样的事情,将值设置为 Size-classes。
但是, #Method1 用于为设备添加约束或说尺寸等级。例如,在 iPhone 中,按钮应该来自前 50 分,而在 iPad 中,它应该水平和垂直居中。在这种情况下,您需要使用 VaryForTraits,因为它打开了为特定尺寸类添加约束的大门。
#Method2 用于相同约束类型的不同常量值。
P.S:致所有无法使示例工作的人
请确保您仅添加所需的约束作为已安装。安装的复选框应该只出现在你需要的尺寸类的约束中。这就是关键!
只需在 View 中添加一个顶部约束和一个导向 uiButton 即可。选择顶部约束并取消选中带加号的基本安装选项。现在,通过单击加号,向 CR 添加变化并选中该选项。现在,使用各种方向组合将设备从 iPhone 更改为 iPad。此约束仅适用于纵向方向的 iPhone CR 尺寸类别。如果选中了基本 Installed(带有加号的那个)的复选框,则意味着该约束应应用于所有尺寸类别。
摘要:
Trait Variation 是对基于设备配置的用户界面呈现的更改。用户界面的特征变化不仅限于约束,而且可以应用于更多。例如在设备设置为深色样式时更改背景和其他元素的颜色。变体可以应用于用户界面的元素,例如移除约束,或应用于 View 类或约束的属性,例如标签的字体。你可以改变:
您可以改变的特定属性集取决于元素的类。在示例中,我们已经演示了使用 - 安装约束和 - 约束常量。其他的,很简单,可以很容易地推断出来。
关于ios - Xcode 8 中的 'Vary for Traits' 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39890055/