Tag: Size Classs

Xcode 8中Interface Builder中的大小类

自动布局非常适合根据约束条件对布局进行调整,但有时布局需要根据设备类型,屏幕尺寸或方向进行更重要的调整。 也许您可能想要: 巨大的iPad Pro屏幕上的字体大小比小巧的iPhone SE更大。 在横向或纵向模式下,iPhone上的视图布局将有所不同。 在您的iPad版本的应用程序中提供其他按钮。 当您的应用处于滑行或拆分视图模式时,可以不同地布局内容。 您如何对布局进行这些调整? 在iOS的早期版本中,您可能有多个iPad和iPhone的情节提要。 或者,也许您已使用设备方向或窗口大小来确定用于布置场景的环境。 随着越来越多的设备,分割视图控制器(在iOS 8中引入)以及滑动和分割视图多任务模式(在iOS 9中引入)使调整布局以适应其环境变得更加复杂。 为简化起见,Apple建议使用新的范例。 而不是根据许多设备类型,分辨率,多任务处理模式和设备方向来考虑布局,您应该集中精力将布局调整为两种宽度(分别称为紧凑型和常规型)和两种高度(也紧凑型和高型)。定期)。 这些区别称为尺寸等级。 然后,您可以使用这些尺寸类来定义或调整布局。 尺寸等级将所有不同的潜在水平和垂直构型减少为两种:紧凑型,适用于有限的空间; 并经常在有限的空间内使用。 例如,iPhone纵向定位被认为具有紧凑的宽度和规则的高度。 有关尺寸类别如何与设备和设备方向相对应的全面细分,请参见图1。 在定义尺寸类别时,Apple做出了一些有趣的决定,值得注意: 在横向放置时,iPhone(6+和6S +除外)的宽度仍被认为是紧凑的。 所有处于纵向或横向模式的iPad都被认为具有常规的宽度和高度。 这意味着iPad方向的改变不会触发尺寸类别的改变。 尺寸类别不仅描述了设备类型和方向。 在iPad多任务处理模式下(例如“滑行”,“分割视图”和“并排”(见图2))显示应用程序时,大小类还描述了应用程序的环境。 请注意,尽管某些iPad多任务处理模式的水平尺寸类别可能会更改,但垂直尺寸类别仍保持常规。 实际上,紧凑的垂直尺寸级别足以表明我们正在横向模式下使用iPhone。 您可以使用Size类做什么? 大小类不能替代约束和自动布局,而是可以协同工作。 您可以使用尺寸类别对布局进行许多更改,例如: 可以调整视图的大小或位置。 字体和颜色可以更改。 可以激活或停用约束(称为已安装和已卸载)。 可以添加或删除视图(也称为安装和卸载)。 Interface Builder中的大小类 尽管您可以根据代码中的不同大小级别调整接口,但最简单,最方便的方法通常是使用Interface Builder ,尤其是在Xcode 8更新中添加的功能。您可以在Interface Builder中简单地将布局和约束分配给特定的大小级别,并且尺寸类发生变化时,布局也会自动更新-无需编写任何代码! 您将探索如何在具有非常简单布局的应用程序中的Interface Builder中为不同大小的类添加自定义项,并显示带有标题和正文的文章。 首先,您将构建iPhone界面,该界面在标签中包含标题,在文本视图中包含正文(请参见图3左侧的iPhone布局)。 但是,这种布局在iPad上看起来不太好(图3中央的布局)。 要解决此问题,您将使用尺寸类来调整界面(右侧布局)。 请注意布局之间的细微差别,而不是细微差别-随着iPad的空间增加,您将要调整字体大小,边距大小并添加字幕标签。 让我们从设置基本界面和约束开始。 创建一个简单的Single View Application,并将其称为SimpleSizeClasses。 […]