自动布局按比例缩放视图

时间:2015-04-10 12:53:24

标签: ios xamarin xamarin.ios interface-builder autolayout

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

Scaling

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

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

我尝试使用宽高比限制,高度限制(大于/小于),但我无法获得所需的效果。

感谢。

2 个答案:

答案 0 :(得分:19)

尝试比例高度和宽度。您需要为等高和/或等宽度制定约束,然后双击约束并更改乘数,例如0.2如果您希望将第一项设为宽度的第二项的20%而将2.0设为200%(意思是双倍)宽度。根据您的要求enter image description here

按比例增加或减少

答案 1 :(得分:8)

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

1。比例约束:

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

仅使用check the answer by Asadullah Ali :)

功能

2。使用size-classes:

如果您使用Xcode 6,您可以使用大小类并为屏幕大小添加约束;使用起来并不困难,请查看Apple Documentation

对于此功能,您需要为Storyboard设置大小类:

enter image description here

之后,您可以按照自己的意愿设置视图控制器,并为其中一个类添加规则:

enter image description here

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

请记住,要为特定大小的类添加约束,首先需要选择大小类,然后通常添加约束:当选择大小类时(可以检入大小类控件)Xcode只为此添加约束类。

编辑1 :如果您在使用缩放字体时出现问题&类似的你也可以使用size-classes功能,仅用于缩放标签中的字体大小;您可以在激活尺寸类功能后单击此选项找到此选项:

How add a font size for one size class


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

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