我对通用应用程序中的图像命名约定有疑问,尤其是对于 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 上。
这里发生了什么,正确的方法是什么?