如何在通用应用程序中支持iPad和iPhone的Retina图形?

71

苹果发布了支持视网膜(retina)图形的新iPad。

我看到了这个链接中的苹果应用程序的视网膜图形。正如您所看到的,苹果只是在视网膜iPad显示器上使用"@2x"后缀。

我有一个通用应用程序。那么如何在新的iPad和iPhone上同时支持视网膜?iPad视网膜会使用类似于iPad的"@2x"后缀吗?


3
每次检查UIInterfaceIdiom()(((都很沮丧。 - rowwingman
1
你可以编写一个UIImage的类别,添加一个名为+(UIImage*) deviceIndependentImageNamed:(NSString*)file;或类似的方法。你也可以在代码中对图像进行缩放,而不是使用多个文件。 - Felix
iOS 人机界面指南已更新,适用于新 iPad。 - Felix
我已经查看了更新的FindMyiPhone应用程序。苹果使用4个图像来支持各种显示。后缀:(无),@2x,-ipad,-ipad@2x - Felix
你可以在这里查看我的答案,关于iPhone Retina、缩放和应用图标。很高兴能帮忙 :) - maddy
显示剩余5条评论
2个回答

138

我刚创建了一个测试应用并进行了测试。

对于没有Retina显示屏的设备:
ImageName.png - 适用于 iPhone/iPod
ImageName~ipad.png -- 适用于 iPad

对于有Retina显示屏的设备:
ImageName@2x.png - 适用于 iPhone/iPod
ImageName@2x~ipad.png -- 适用于 iPad

如果你的 iPhone 高分辨率图像和 iPad 高分辨率图像具有相同的尺寸,则仍可以使用 @2x。
加载图像只需使用 [UIImage imageNamed:@"ImageName.png"];
我刚在 iOS 模拟器上测试了 iOS 5.1、5.0 和 4.3 版本。
顺便问一下,为什么只需要使用 @2x 呢?

主要原因是你不应该在 iPhone 和 iPad 上使用相同的图形,因为 iPhone 和 iPad 的尺寸不同。如果你使用相同的尺寸,那么对于您的 iPad Retina 显示屏图形将已经处理完毕(如果您之前使用的是 iPhone Retina 显示屏)。如果你使用不同尺寸的图片,那么你就需要为 iPhone 和 iPad 使用不同的图片名称。所以在这方面,你只需要添加 @2x 后缀。 这就是为什么你应该只使用 @2x 后缀的原因。- 这是我的想法。


25
小心字母P的大小写,我因为写"iPad"或"iPhone"而遇到了问题,奇怪的是在模拟器上可以工作,但在真实设备上却不能。此外,我发现如果没有@2x~ipad版本,则新iPad将使用@2x版本,而在这种情况下,它是iPhone视网膜文件。也要考虑这一点... - LightMan
5
模拟器不区分大小写(这是首次分发到设备时常见的问题原因),这就是为什么它可以在模拟器上正常运行,无论大小写如何。 - Matt
4
这个的文档:http://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreens/SupportingHiResScreens.html#//apple_ref/doc/uid/TP40010156-CH15-SW8 - Ben Flynn
3
文档的新链接:http://developer.apple.com/library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreensInViews/SupportingHiResScreensInViews.html#//apple_ref/doc/uid/TP40010156-CH15-SW1 - Zev Eisenberg
1
后缀“-568h”仅适用于启动图像,但不适用于其他图像。您需要检查设备尺寸。 - rowwingman
显示剩余4条评论

7
我发现iPad mini/非视网膜iPad硬件(不是模拟器)会退回到ImageName.png,而不是像rowwingman的答案所期望的那样使用ImageName~ipad.png。
查看文档,另一个StackOverflow问题中引用了Nate,似乎将设备附加到iphone图像是正确的方法。

MyImage.png - 图像资源的默认版本。

MyImage@2x.png - 高分辨率图像资源的版本,适用于具有Retina显示屏的设备。

MyImage~iphone.png - iPhone和iPod touch的图像版本。

MyImage@2x~iphone.png - 适用于具有Retina显示屏的iPhone和iPod touch设备的高分辨率图像版本。

图像、声音和视频资源


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