iPad Retina显示后缀

21

我想在3月16日新iPad发布时将iPad视网膜(超赞!)质量的图像放入我的应用程序中。然而,我无法在文档中找到正确的文件名后缀!

我在iPhone和iPod视网膜显示器上使用@2x后缀。如果其他人知道iPad的后缀是什么,并且更重要的是,能够向我展示官方文件的链接,我将不胜感激。

谢谢! :-D

额外信息:

我想留下一些代码,我开始使用iPhone @2x图像以替换iPad非视网膜图像(因为我的大多数@2x~iphone和~ipad图像是相同的,重复只是浪费空间)。

+ (UIImage*)imageNamedSmart:(NSString*)name
{
    UIImage *returnImage = [UIImage imageNamed:[NSString stringWithFormat:@"%@", name]];

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2)
        {
            // iPad Scale 2  i.e. 3rd Gen iPad
        }
        else
        {
            // iPad Scale 1  i.e. 1st and 2nd Gen iPad
            return [UIImage imageNamed:[NSString stringWithFormat:@"%@@2x", name]];
        }
    }
    return returnImage;
 }
这意味着不再调用:
[UIImage imageNamed:@"imageName"]

而是调用:
[self imageNamedSmart:@"imageName"]

希望这能对人们有所帮助。 :-D

(我通过谷歌搜索找到了这个想法,但是我找不到原始站点链接,所以无论你是谁,谢谢你。)


提示:imageNamed:已经为您完成了所有的工作。它知道所有4个分辨率和前缀。;-) - Constantino Tsarouhas
是的,但你仍然需要放置双倍的图像文件,每个都有自己的名称。这种方式意味着您可以使用一个name@2x.png来代替name~ipad.png,并且只需一个图像,代码就可以计算出要使用哪个。当您拥有iPhone和iPad retina的通用应用程序时,它会变得非常大,非常快。:-D - Baza207
事实上,这可能是通用应用程序最大的缺点:体积更大。 - Constantino Tsarouhas
2个回答

38
您需要将@2x~ipad附加到您的图像名称中,以支持Retina图形。

谢谢@thvanarkel,我从图标图片中找到了它,但是你知道在文档中哪里写了吗? - Baza207
刚在文档中找到这个。再次感谢thvanarkel。:-Dhttps://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/ImageSoundResources/ImageSoundResources.html - Baza207
@thvanarkel 实际上并不是我们所有人都以相同的方式设置项目。我的95% iPhone Retina位图可以用于我的iPad Retina位图。我经常使用相同的位图,但是我会为每个设备重新布局GUI。如果您正确使用可拉伸图像和动态布局,则可以大多数情况下使用相同的位图来处理两个Retina显示器。当然,也有一些例外情况,理想情况下,您可以在需要时使用Core Graphics进行绘制。 - Jeshua Lacock
1
来到这里想知道是@2x~ipad还是~ipad@2x。感谢澄清! (另外,已经是八月中旬了,苹果的文档仍然没有在任何地方澄清这个问题。哇。) - Greg
1
苹果公司明确指出:修饰符的顺序至关重要。如果您错误地将@2x放在设备修饰符之后,iOS将无法找到该图像(https://developer.apple.com/library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreensInViews/SupportingHiResScreensInViews.html)。 - Ronny Webers
显示剩余2条评论

0
如果iPhone和iPad的视网膜图像大小相同,则仅使用带有@2x后缀的一个图像。在这种情况下,即使是iPad retina也使用此图像。
如果iPhone和iPad的视网膜图像大小不同,则为iPhone使用带有@2x后缀的图像,为iPad使用带有@2x〜ipad后缀的另一张图像。例如,启动图像具有不同的大小,因此您可能需要Default@2x.png和Default@2x~ipad.png。

你确定吗?我问这个问题是因为我在App Store上只有一个“视网膜准备好”的iPad应用程序(带有“@2x”后缀的视网膜图像),今天我发现一些图像加载正确,而另一些则没有(在视网膜iPad上)。是的,所有的图像都已经安装/复制了。我将尝试将它们重命名为“@2x-ipad”,以查看是否是这种情况。 - Rok Jarc
我上面所写的可能还有其他答案 - 应用程序是使用XCode 4.2.1编译的 - 它“不知道”视网膜iPad的存在。 :) - Rok Jarc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接