自动布局按比例缩放视图

Auto Layout proportionally Scaling Views

我已经找到了几个关于这个主题的问题和答案,但我就是无法让它为我工作。

蓝色矩形是包含测试标签和齿轮图像按钮的 UIView。红色的是第二个 UIView。

我想要做的是让蓝色条(它是一个 UIView)在更大尺寸的屏幕上增大,这将导致标签和设置按钮缩放,而红色 UIView 缩小高度,以便蓝色 UIView 可以变大。所以基本上问题是,如何针对不同的屏幕尺寸按比例缩放 UIView。

我试过使用宽高比约束、高度约束(大于than/less)但我就是无法获得预期的效果。

谢谢。

尝试比例高度和宽度。您需要为 Equal Heights and/or equal Widths 设置约束,然后双击约束并更改乘数,例如 0.2 如果您希望第一个项目的宽度为第二个项目的 20%,2.0 为 200 %(表示双倍)宽度。根据您的要求按比例增加或减少

您有两种方法可以做到这一点:

1.比例约束:

但是,如果您为一个视图设置比例高度,则意味着视图会随着屏幕尺寸的每次微小变化而变化。例如,您的视图可以从 4" 切换到 4,7" 更大一点,但这并不意味着这是个坏主意。

要使用该功能,只需

2。使用大小-classes:

如果您使用 Xcode 6,您可以使用尺寸 classes 并仅针对屏幕尺寸添加约束;不难用,查看Apple Documentation.

对于此功能,您需要为故事板设置 classes 大小:

之后,您可以根据需要设置视图控制器,并只为 classes 之一添加规则:

你可以告诉 Xcode“好吧,如果屏幕尺寸是 5,5 至少使用这个规则”。

请记住,要为特定尺寸 classes 添加约束,您首先需要 select 尺寸 class 然后通常添加您的约束:当尺寸 class是 selected(您可以检查大小 classes 控件)Xcode 添加约束只是为了 class.

编辑 1:如果您在 缩放字体 和类似方面遇到问题,您也可以使用 size-classes例如,仅用于 缩放标签中的字体大小的功能 ;您可以在激活大小 classes 功能后单击此选项找到此选项:


我更愿意告诉你我所知道的关于你的问题的一切,但就你个人而言,我会使用第一个解决方案:你的视图可以动态改变任何屏幕尺寸。

您只需要找到最佳比例百分比:您可以设置大约 10%,因此 0.1 乘数第一项为蓝色视图,第二项为红色视图