iOS AutoLayout使用间隔视图进行均匀间距
在本教程中,我们将探讨AutoLayout的其他一些细微差别。
创建新项目时,默认情况下会启用自动版式。
iOS自动版面回顾
正如我们在上一教程中所讨论的,AutoLayout是一个布局系统,它描述如何使用描述性约束对视图进行布局。
让我们按照教程在屏幕的四个角添加4个按钮。
观察图像右侧的两个预览图像。
它们分别对应于3.5英寸和5.5英寸的屏幕。
如您所见,预览不会在3.5英寸屏幕上显示左下和右下图像(也请尝试如图所示切换到横向视图)。
在5.5英寸屏幕的情况下,按钮与边缘的距离不远,就像我们在界面生成器中保留的那样。
让我们将其固定在边距上。
如您所见,我们将按钮固定在相应的边距(底部按钮的左下/右)。
您也可以为顶部的按钮做相应的操作。
按钮周围是橙色框。
要修复这些错位的视图,请按照下图所示更改约束值。
注意:更简单的方法是单击警告图标,然后选择"修复错位"。
水平约束(本质上是视图左侧和右侧的约束)被称为前导约束和尾随约束。
下图显示了视图控制器的约束以及到容器边距的前导空间。
在进入均等间距视图之前的另一个快速示例是添加一个View Object并覆盖整个屏幕。
让我们从属性检查器中为其指定一些背景颜色。
现在,当前的屏幕预览将类似于下面给出的图像。
再次!我们需要设置约束以指定View对象的边缘。
下图演示了该过程。
现在,让我们均匀地进入间隔视图。
均匀分布的视图
要在不同大小的屏幕上均匀分布视图,有两种方法:
- 使用间隔视图
- 使用乘数
让我们使用第一种方法实施。
第二种方法将在下一个教程中介绍。
使用间隔视图
我们将间隔视图称为内容视图之间的UIView。
我们将在边缘和内容视图之间有四个间隔视图。
下图显示了界面构建器与视图的初步概览。
我们在屏幕的左窗格中命名了每个视图。
黑色视图是间隔视图。
正如您在预览中看到的那样,视图没有完全显示在不同尺寸的屏幕中。
在以下步骤中,我们将显示设置约束的过程,以使内容视图均匀分布。
设定约束
- 对于"第一个垫片视图",请从屏幕底部的图钉按钮将约束分别添加到顶部,左侧和底部页边距分别为20、0和20。
为了不遗漏任何约束,我们也将固定视图的宽度(尽管稍后将删除这些显式宽度)。
下图描述了此步骤。
从底部的"解决自动布局问题"按钮中选择"更新框架"。
这将根据指定的约束更新当前的间隔视图 - 通过将顶部,右侧和底部约束分别添加为20,0和20,对"第四间隔物视图"重复上述步骤。
还要设置宽度约束。
当前的Interface Builder应该与下图类似,看看左窗格中定义的约束。
他们符合您的要求吗? - 现在选择"左侧内容视图"。
注意:请确保该视图与"第一个垫片视图"不重叠。
否则,该视图的左边距约束将设置为"超级"视图,而不是间隔视图。
将视图的顶部,左侧和底部约束设置为20、0和20。
还要设置宽度约束并更新框架。
对"正确的内容视图"进行类似的处理。
View Controller Scene应该是这样的。
选择"第二个垫片视图",并将顶部,底部和左侧约束分别设置为20、20和0。
设置宽度并更新框架。
对第三个垫片视图执行相同的操作现在,选择"中间内容视图"并将顶部,底部,左侧和右侧的约束设置为20、20 0和0。
下图显示了如何显示所有视图。现在要使内容视图均匀分布,我们需要删除间隔视图的宽度约束并将它们设置为相等的宽度。
然后从左右内容视图中删除显式宽度,并根据需要为三个内容视图设置可自定义的宽度约束。