如何在通用应用程序中支持iPad和iPhone视网膜图形

row*_*man 71 iphone ipad ios retina-display

Apple展示了支持视网膜图形的新iPad.

在苹果应用程序中看到了这个链接视网膜图形.正如你所看到的那样苹果只需使用"@ 2x"后缀进行视网膜iPad显示.

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

row*_*man 138

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

因此对于没有视网膜的设备:
ImageName.png - 适用于iPhone/iPod
ImageName~ipad.png- 适用于iPad

对于带视网膜显示屏的设备:
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视网膜显示器(如果你以前使用iPhone视网膜显示器).如果您将使用不同尺寸的图像,那么您将为iPhone和iPad使用不同的图像名称.所以在这方面你需要添加@ 2x后缀.这就是你应该只使用@ 2x后缀的原因. - 这些是我的想法.

  • 小心字母P的情况,因为写了~iPad或~iPhone我有问题,奇怪的是它适用于模拟器而不适用于真实设备.此外,我发现如果您没有@ 2x~ipad版本,那么新iPad将使用@ 2x版本,在这种情况下是iPhone视网膜文件.考虑到这一点...... (25认同)
  • 模拟器不区分大小写(首次分发到设备时出现问题的常见原因),这就是为什么它在模拟器上运行而不管套管 (5认同)
  • 该文档:http://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreens/SupportingHiResScreens.html#//apple_ref/doc/uid/TP40010156-CH15-SW8 (4认同)
  • 文档的新链接:http://developer.apple.com/library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreensInViews/SupportingHiResScreensInViews.html#//apple_ref/doc/uid/TP40010156-CH15-SW1 (3认同)

bda*_*iel 7

我发现iPad迷你/非视网膜iPad硬件,而不是模拟器,会落在ImageName.png上,而不是像Rowwingman的回答那样的ImageName~ipad.png.

综观文档,在另一个引用的StackOverflow问题内特,却仿佛设备附加到iphone的图像是做了正确的道路.

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

MyImage@2x.png - 具有Retina显示器的设备的高分辨率版图像资源.

MyImage~iphone.png - 适用于iPhone和iPod touch的图像版本.

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

图像,声音和视频资源