tec*_*erd 79 ios ios-autolayout ios10 xcode8
我正在使用AutoLayout和Size类,但随着iOS 10和新Xcode 8.0的发布,有一个新选项Vary for Traits.这是替换尺寸Classe不同的宽度和高度的设备.
通过选择width复选框,它会显示varying 14 compact width devices.
通过选择height复选框,它会显示varying 18 compact height devices.
通过选择两个复选框,它将显示varying 11 compact width regular height devices.
如何利用这个选项?我们可以像使用Xcode7.0一样使用大小类的AutoLayout吗?如果任何人有深入的知识,那么请解释一下.
Jen*_*ose 130
这只是如何在项目中快速使用"Vary Traits"为iPad和iPhone添加不同布局的扩展.
请阅读本文以了解有关Size类的更多信息.
https://developer.apple.com/reference/uikit/uitraitcollection
如果您正在跳过下面的示例,请阅读最后的摘要.
你需要一个iPhone和iPad宽度不同的按钮.前者的宽度为80,后者的宽度为300.
对安装了多个约束的特征不同.
脚步 :
结论:
请注意,总共添加了两个约束,并且在两个约束中,值根据所选的大小类而不同.
对于具有单一约束的特征,安装了多个Size-Class,这些都有所不同
结论:
这似乎是一个更好的选择,而不是在仅需要单个约束且常量值不同时添加两个约束.
何时使用,使用方法:
这两种方法基本上都是做同样的事情,将值设置为Size-classes.
但是,如果要为设备添加约束或使用size-class ,则使用#Method1.例如,在iPhone中按钮应该来自前50个点,而在iPad中它应该水平和垂直居中.在这种情况下,您需要使用VaryForTraits,因为它打开了大门,为特定大小的类添加约束.
如果希望对同一约束类型使用不同的常量值,则使用#Method2.
PS:所有那些无法获得工作实例的人
请确保您只添加所需的约束作为已安装.针对Installed的复选框应仅针对大小类所需的约束显示.这是关键!
只需在视图中添加一个顶部约束和一个uiButton.选择顶部约束并使用加号取消选中基本已安装选项.现在,通过单击加号,将变量添加到C R并检查该选项.现在,使用各种方向组合将设备从iPhone更改为iPad.此约束仅适用于纵向方向为iPhone的 C R大小类.如果选中了基本已安装的复选框(带有加号的符号),则表示该约束应适用于所有大小类.
摘要:
Trait Variation是对基于设备配置的用户界面表示的更改. 特征用户界面的变化不仅限于约束,还可以应用于更多.例如,当设备设置为暗色时,更改背景颜色和其他元素.变体可以应用于用户界面的元素,例如移除约束,或视图类或约束的属性,例如标签的字体.你可以改变:
视图的大小或位置
安装视图
安装约束
约束常数
字形
字体,色调或背景的颜色
布局边距
图像文件
您可以改变的特定属性集取决于元素的类.在该示例中,我们已经演示了使用 - 安装约束和 - 约束常量.其他的,非常简单,可以很容易地推断出来.
val*_*ine 20
对于特征的变化是过去版本的Xcode中出现的大小类选项的演变.它允许基于特征的更加漂亮和精确的变化.当然,它不仅限于iPad/iPhone版本,您还可以根据方向和不同设备指定变化.
这个帖子中的其他答案有一些缺点和不准确,也许最有效的答案方法就是举个例子.为了清楚起见,我们将示例仅限于一个按钮和两个布局.但是,如下所述,您可以根据需要扩展以下示例.我们的目标是在两个不同的布局之间调整按钮的位置:所有设备上的横向和纵向.
注意:如果未启用"各种特性"选项,则所有布局和ui界面调整都会引用所有特征(即所有大小类).
让我们首先在故事板上放一个按钮.由于"特征变化"未启用,因此按钮将出现在所有不同的布局中.相反,如果我们启用了不同的特征,则按钮将仅被引用到所选的特定特征.
现在,让我们启用"因性状而异"并根据身高选择变化.您应该看到底部屏幕将变为蓝色,根据选择,您将看到所有受影响的设备.到现在为止还挺好.
再次选择按钮并添加通常的约束.在我们的示例中,我们将添加顶部和左侧前导空间以及宽度和高度.之后,点击"Done Varying".您将看到屏幕的底部将再次变为灰色.发生的事情是我们告诉Interface Builder只为(w:C h:R)类添加上述约束.
现在选择屏幕底部的横向模式.您将看到Button为红色,因为它缺少您仅为某些特征添加的约束.再次选择因性状而异,并再次选择高度变化.添加以下约束:
并按完了变化.现在,按钮在屏幕上很好地识别出横向和纵向.
建立并运行.您将看到按钮将根据屏幕方向而改变.
您可以按照此模式创建更高级的布局.例如,您可以在开头选择特征变化,并仅针对特定特征删除UIKit对象.此对象仅在指定的变体中出现,并且将在其他对象上显示为灰色,允许您根据特征创建完全不同的用户界面.
它只不过size classes是自我,但具有不同的表现形式.直到xcode 7我们使用大小类,我们height-width在regular,compact and any方式上考虑,在vary for traits概念上是相同的,但xcode具体解释exact device.在旧版本我们知道其他for every iphone in portraint类型的信息,在这里我们可以知道确切的设备!
检查以下屏幕截图,
您应该参考wwdc2016 - 视频了解更多信息!
参考:这个帖子
| 归档时间: |
|
| 查看次数: |
48096 次 |
| 最近记录: |