2

我对通用应用程序中的图像命名约定有疑问,尤其是对于 ipad mini。

我正在开发一个跨 iphone 4s、ipad 3(即带有视网膜的 ipad)和 ipad mini 的通用应用程序。我有一张我想在应用程序中加载为背景的图像。我在用

[UIImage imageNamed:@"background"] 

获取图像。这适用于 iphone 和 ipad,但不适用于 ipad mini。

为了调试,我用

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"background" ofType:@"png"];
NSLog(@"background image: %@",filePath);

以确保选择了正确的图像。在 ipad 上我得到

background image: /var/mobile/Applications/[...RESOURCEPATH...]/background.png

在iphone上我得到

background image: /var/mobile/Applications/[...RESOURCEPATH...]/background~iphone.png

但在 ipad mini 上我得到

background image: (null)

真正奇怪的是,我已经包含了图像的命名版本:

background~iphone.png
background@2x~iphone
background-Portrait~ipad
background-Portrait@2x~ipad

但不是 background.png 本身。

当我意识到这个错误时,我添加了 background.png 图像,现在我的背景也出现在了 mini 上。

这里发生了什么,正确的方法是什么?

4

1 回答 1

1

您将-PortraitUpsideDown在图像名称中看到“修饰符”(如“”)的唯一位置将是启动图像,如本 Apple 文档中所述(请参阅“为不同方向提供启动图像”部分)

你真的应该只有两个背景图像。一种用于常规分辨率,一种用于 Retina 分辨率(即“ @2x”后缀)。这两个图像应该能够很好地处理旋转。

于 2013-05-10T23:09:44.540 回答