【问题标题】:image naming convention for ipad miniipad mini 的图像命名约定
【发布时间】:2013-05-10 23:03:49
【问题描述】:

我对通用应用程序中的图像命名约定有疑问,尤其是对于 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 上。

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

【问题讨论】:

    标签: ios image background naming-conventions


    【解决方案1】:

    您会在图像名称中看到“修饰符”(如“-PortraitUpsideDown”)的唯一位置是启动图像,如this Apple documentation (look in the "Providing Launch Images for Different Orientations" section) 中所述。

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

    【讨论】:

    • @Dautermann:好的,我可以遵循这个约定……但这并不能解释为什么 iPad 找到了图像,而 mini 却没有。另外,iPad 发现了一个不存在的图片名称?
    • 该文件应命名为“background@2x.png”,以便在您的 Retina 显示屏 iPad Mini 上提取。带有后缀“@2x~ipad.png”和“@2x~iphone.png”的文件名无效,或者至少它们没有在任何地方正式记录。我不会那样命名我的图像文件。
    • mini 是视网膜显示器吗?我以为 iPad 3 是,但 mini 就像 iPad 2?
    • 你是对的。 The current mini is not a retina display,所以在这种情况下,应该找到并加载您的“background.png”(正常分辨率)文件。
    • @MichaelDautermann:~iphone 后缀记录在这里:developer.apple.com/library/mac/documentation/Cocoa/Conceptual/…
    猜你喜欢
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 2013-03-23
    • 2013-11-15
    相关资源
    最近更新 更多