2015-04-02 174 views
2

我正在为iPhone编程应用程序,我正在使用自动布局。我了解@ 1x,@ 2x和@ 3x是如何工作的,但我不明白的是如何使用自动布局处理不同的屏幕尺寸。iOS:使用自动布局缩放不同的屏幕尺寸

如果我想现场看在iPhone 6+,iPhone 6和iPhone 5都好,我必须考虑到每部手机的非常不同的大小。我无法在所有iPhone上使用相同的图像尺寸(以点为单位),因为它在较小的手机上显得太大,在较大的手机上显得太小。而我甚至不想想iPad布局的麻烦。

我该如何解决这个问题?我应该使用约束条件来动态缩放所有图像吗?这听起来可行,但我想知道最好的解决方案是什么。

谢谢。我真的很茫然。

回答

4

一个小把戏,我通常做的是:

定义的纵横比限制(CMD +在您的视图中单击开始,在你看来结尾):

enter image description here

然后迫使你视图增加宽度或高度(即:定义左侧和右侧的约束)。

这一切都取决于你想要的东西,而约束条件/代码在不同情况下会有所不同。

+0

此解决方案是否适用于整个屏幕?这正是我想要做的,但我不知道“长宽比”限制。它究竟做了什么,相比之下,只是定义了左右边界的约束条件(这也应该拉伸图像)? 您在自己的应用中使用了什么解决方案来解决我面临的问题?我会认为这是一个相当普遍的问题。 谢谢。 – Konrad 2015-04-02 11:15:31

+0

长宽比与非长宽比之间的差异在于,您可以保证,如果增加宽度,图像将具有相同的比例并以相同的比例增加高度。正如我所说,这一切都取决于你的具体问题。您可能希望将图像的大小增加到最大,或以与其他图像相同的比例增加图像,甚至只是全屏。通常我用约束来解决这个问题,但是对于每种情况来说,约束条件是不同的。 – 2015-04-02 11:38:26

+0

好的。我会尝试添加这些类型的约束,基本上是纵横比和左/右或顶部/底部约束,以便使我的子视图动态调整大小。但是,如何以这种方式以与其他图像相同的比例增加图像的大小? – Konrad 2015-04-02 13:17:10

1

你可以做的@ 2x和@ 3倍不成比例比@ 1个计数器部分越大,则使用的UIImageView的固有大小让它成为更大的不同的屏幕尺寸

从来没有尝试过这样的事情我自己,但我没有看到一个原因,如果你想保持不同尺寸的propotion(例如,具有相同的外观尺寸在每个设备中的图像),你可以使用约束它wouldnt工作

+0

它不能很好地工作,因为@ 2x用于iPhone 4,iPhone 5和iPhone 6,它们的屏幕尺寸完全不同。基本上这样的解决方案对于4和5来说非常好,但对于6而言根本无法解决。 – Konrad 2015-04-02 11:14:16