2

在我的应用程序中,我无法显示 iPad Retina 图像。我知道我必须使用@2x~ipad.png扩展才能让它们正确显示,我这样做了。我的图像是根据命名的,因此除了每个设备的扩展名之外,它们的名称都相同。但是,在 iPad 3 上查看图像时,我的图像看起来很模糊。我知道图像的尺寸和 PPI 是正确的,但它看起来并不清晰。

我的图像也在我的“复制捆绑资源”中。我试图清理我的项目,然后重新启动 Xcode。没运气。

同样在我的 iPad XIB 的 Interace Builder 中,我将每个图像设置为 -72.png 图像(我猜如果它是 iPad 3,图像会自动切换到 @2x~ipad.png 对吗?)

有什么方法可以通过 NSLogs 确认它是否正在加载正确的图像?还有什么我应该仔细检查以确保加载正确的图像。

4

2 回答 2

8

呃,如果你真的这样做:

[名称]-72.png 和 [名称]@2x~ipad.png

那是不对的。

如果这是一个通用应用程序,那么你有

  • Foo.png(或 Foo~iphone.png)和 Foo@2x.png(或 Foo@2x~iphone.png)[注意:iphone 不是 iPhone];

  • Foo~ipad.png 和 Foo@2x~ipad.png

这一切都在我的通用应用程序中为我工作。

编辑:您可以阅读 Apple 的“资源编程指南”第 46 页中的命名约定:

当底层设备具有高分辨率屏幕时,捆绑包和图像加载例程会自动查找带有@2x 字符串的图像文件。如果将@2x 字符串与其他修饰符结合使用,则@2x 字符串应位于任何设备修饰符之前,但应位于所有其他修饰符之后,例如启动方向或 URL 方案修饰符。例如:

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

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

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

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

EDIT2:所以我确实参考了“-72”(和-50)。这些用于 iOS 3.1.3 和更早版本。完整的解释可以在“iOS 应用程序编程指南”、“应用程序图标”部分找到(链接太脆弱而无法使用)。

于 2012-08-12T22:17:57.853 回答
0

我正在做的是将图像名称设置为:

  1. [name]_ipad.png, [name]_ipad@2x.png. [iPad]
  2. [name]_ipod.png, [name]_ipod@2x.png. [苹果手机]

而且,我在 上添加了一个类别UIImage,该类别基于当前设备mc_imageNamed:附加_ipad或。_ipod当然,我已经根据它们在 XIB 中的名称设置了图像。

根据我的经验,这种方法可以保证有效。如果有人能解决您的问题,那就太好了,但也可以使用此解决方案。

于 2012-08-12T22:13:43.660 回答