在iOS中的不同设备上出现1x,2x和3x问题

时间:2016-10-12 09:30:31

标签: ios iphone xcode image autolayout

我在图像资源文件中有1x,2x和3x图像,如下图所示。

Image 1

但是,它为所有设备放置了1x图像,如下面提到的图像。

Image 2

使用的是Xcode 7.3和iOS 9.3。我使用自动布局创建了imageview。并设置Align centre x to superviewAlign centre Y to superview

任何建议/意见将不胜感激!感谢。

3 个答案:

答案 0 :(得分:7)

这很好。 3x并不意味着您的imageview会显示三次更大的时间。它使用三倍更大的分辨率。这意味着如果您的图片视图尺寸为50x50,那么iphone 6 plus (5.5 inch)需要图片的分辨率为150x150。如果您将50x50分辨率图像设置为此显示,则它不会显示完整性。而已。这并不意味着3x图像的显示时间比原始imageview大3倍。

然后你还需要你的图像大小的图像视图,然后将UIViewContentModeScaleAspectFill内容模式设置为你的imageview,并使用相同的约束条件!

答案 1 :(得分:2)

由于@Lion很好地回答了这个问题,使用3X并不意味着你的图像高度和宽度会增加3倍。

如果您想为更大的设备调整图片视图的大小,那么您只需要使用适当的自动布局约束。

如果要更改图像视图的原点和大小,请使用此设备尺寸(宽高比) 当您的imageview尺寸调整大小时,使用2/3倍大图像作为imageview以获得2X / 3X分辨率。

Autolayout: origin and size should change according to width and height factor

检查这些设备

iPhone 4和之前的@ 1X

iPhone 4S,5,5S,5C,6,6S,7,7S @ 2x

iPhone 6 +,6S +,7 +,7S + @ 3x

假设在对较大屏幕应用约束后,您的图像视图的大小为(50,50),则使用大小为150,150的图像进行3倍分辨率

答案 2 :(得分:1)

确保您的内容模式为UIViewContentModeScaleAspectFillUIImageView

没有高度/宽度限制