使用自动布局调整Uiview

现在我正在学习自动布局,我面临着一个我无法解决的问题。

我有一个视图,正确加载在一个4英寸的设备(左视图),我试图适应一个3.5英寸的设备,使完全像图像上的正确的看法:

在这里输入图像说明

唯一的区别是,绿色,橙色,黑色和粉红色的意见应该缩小一点,以保持上述两个视图相同的大小。

我的问题是,我不能找出一种方法来使用约束。

这是我已经有的约束所发生的事情:

在这里输入图像说明

我已经试图将底部空间固定在黑色和粉红色视图的超级视图上,以避免视图缩小以适应屏幕,但是这不起作用,并且在Xcode上给了我很多警告。

在绿色和黑色视图之间,以及橙色和粉红色视图之间需要等高度的限制。

让我们从头开始构build您的布局。 如果你的视图比你想要的小,那么设置约束通常会更容易,并且编辑约束常量来调整它们的大小。 所以我们从五个观点开始:

五观点没有限制

这里的意见的布局是重要的! 请注意,例如,橙色视图严格位于绿色视图的右侧。 这意味着如果我要求Xcode从绿色视图的后沿到其最近的邻居创build约束,则该邻居是橙色视图,而不是超级视图。

在文档大纲中命名视图是有帮助的。 要命名一个,点击大纲中的条目,按回车键,然后input名称:

大纲中的名称

select蓝色。 在顶部,前缘和后缘以及高度约束条件下给它一个常数为0的约束:

蓝色限制

如果你更新它的框架(就像我在对话框中所做的那样),Xcode将如下所示:

蓝色布局

接下来,select绿色。 在所有四条边上给它一个常量为0的约束。 顶部应该去蓝色,领先应该去超级观看,尾部应该去橙色,底部应该去黑色。 您可以通过单击显示三angular来检查约束另一端的哪个视图:

绿色约束对话框

不要更新格林的框架! 它应该是这样的:

绿色约束

接下来,为橙色,黑色和粉红色做同样的事情。

一旦为所有四个底部视图创build了边缘约束,请select全部四个视图(绿色,橙色,黑色和粉红色)。 它应该是这样的:

对底部视图的限制

select全部四个,创build等宽和等高限制:

等宽/高对话框

请注意,这是矫枉过正。 我们并不需要左右列之间的等高约束,我们也不需要顶行和底行之间的等宽约束。 但是这个答案已经有一英里长了,而且在一个行动中创build所有同等大小的约束要短得多。

现在看起来更混乱:

乱

select顶层视图或视图控制器,然后selectView Controller中的更新所有帧:

更新菜单项

Xcode应该像这样布置视图:

好的布局4寸

如果你点击窗体因素切换button,Xcode应该像这样布置视图:

良好的布局3.5英寸

我已经把最后的故事板上传到了这个要点上 。