我对通用应用中的图像命名约定有疑问,特别是对于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图片,现在我的背景也显示在迷你版上。
这里发生了什么,以及正确的方法是什么?
答案 0 :(得分:1)
如this Apple documentation (look in the "Providing Launch Images for Different Orientations" section)所述,您在图片名称中唯一可以看到“修饰符”(如“-PortraitUpsideDown
”)的地方就是启动图片。
你真的应该只有两张背景图片。一个用于常规分辨率,一个用于Retina分辨率(即“@2x
”后缀)。这两个图像应该能够很好地处理旋转。