了解image.xcassets上的iPhone 5/6分辨率

时间:2015-05-12 10:19:40

标签: ios objective-c iphone xcode xcasset

正如标题所说,我仍然很难理解image.xcassets如何处理iPhone 5/6图像。让我解释一下:

example

这是image.xcassets中的MENU_EMPTY_LIST文件。我一直在寻找stackoverflow中的答案,我发现了这个:

  • 1x图像适用于原始iPhone通过3GS - “标准”分辨率设备(3.5“屏幕)

  • 2x图像适用于iPhone 4,4S(3.5英寸Retina屏幕)以及 iPhone 6。

  • Retina 4 2x用于iPhone 5和5s(4“Retina屏幕)

  • 3x图片适用于新款iPhone 6+(5.5英寸超级Retina [3x]屏幕)

这对我帮助很大,但我的问题是:如果图像集是背景(简而言之,图像覆盖所有屏幕)怎么办?如何处理不同的屏幕尺寸?我需要把什么放进“2x”广场? iPhone 4 / 4S图像还是iPhone 6?

1 个答案:

答案 0 :(得分:0)

只有一个问题是iPhone 4和iPhone 6采用相同的@ 2x图像。

所以,如果你想为所有设备设置完美的图像,那么你必须尝试以下代码:

if([[UIScreen mainScreen]bounds].size.height==480)
{
    login_bg.image=[UIImage imageNamed:@"i4_login.png"];
}
else if ([[UIScreen mainScreen]bounds].size.height==568)
{
    login_bg.image=[UIImage imageNamed:@"i5_login.png"];
}
else if ([[UIScreen mainScreen]bounds].size.height==667)
{
    login_bg.image=[UIImage imageNamed:@"i6_login.png"];
}
else if ([[UIScreen mainScreen]bounds].size.height==736)
{
    login_bg.image=[UIImage imageNamed:@"i6+_login.png"];
}
else if ([[UIScreen mainScreen]bounds].size.height==1024)
{
    login_bg.image=[UIImage imageNamed:@"ipad_login.png"];
}