【问题标题】:Universal application iPad/iPhone image naming convention?通用应用程序 iPad/iPhone 图像命名约定?
【发布时间】:2011-05-01 17:33:18
【问题描述】:

在我的应用程序中,我需要根据设备 iPad/iPhone 4/iPhone 3 设备获取正确的图像。

例如:

对于 iPhone 3/iPod,我有一个名为 a.png(宽 40,高 20)的图像,对于 iPhone 4,我有一个名为 a@2x.png(宽 80,高 40)的图像。

如果我提到了代码

UIImage *myImage=[UIImage imageNamed:@"a.png"];

如果是 iPhone 4,myImage 包含 (80*40) 图像。 如果是 iPod/iPhone 3,myImage 包含 (40*20) 图像。

我的问题是如何获得 iPad (60*30) 的图像,如上述命名约定。

我尝试将a~ipad.png 作为图像名称,但它不起作用。能指出哪里错了吗?

如果我使用[UIDevice currentDevice]; isIpod -> load(60*30) 图像的条件 否则为 iPhone/iPod 加载图像它工作正常。

但我需要让它在不使用条件的情况下工作,并使用命名约定,如 iPhone/iPod 的 a.png、iPhone 4 的 a.@2x.png 和 iPad 的命名约定。

提前致谢。

【问题讨论】:

    标签: iphone objective-c ipad uiimage


    【解决方案1】:

    我知道这是旧帖子,但我认为 Screenshot 提供了关于命名约定的更清晰的概念。

    使用最新设备:button@3x~iphone.pngbutton@3x~ipad.png

    【讨论】:

      【解决方案2】:

      根据这个 Apple 文档,设备有一个图像命名约定:

      http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/LoadingResources/ImageSoundResources/ImageSoundResources.html#//apple_ref/doc/uid/10000051i-CH7-SW17

      它说 iPhone 使用“~iphone”,iPad 没有后缀。虽然有人告诉我“~ipad”也可以。

      【讨论】:

      【解决方案3】:

      iPad 没有图像命名约定,它仅适用于 Retina 显示器,这样您的图像就会显得清晰。如果你想支持 iPad,那么你需要为它创建一个单独的布局(单独的 xib),在大多数情况下甚至是单独的一组图像,因为你有一个更大的布局。

      但是,您可以为自己创建一个命名约定,并将字符串名称传递给一个静态函数,该函数将根据设备将名称转换为 iPad / iphone。

      例如

      [UIImage imageNamed: [MyAppUtils getImageName:@"a.png"]];
      

      在 getImageName 函数中,您可以进行转换(如果是 iphone,则使用相同的名称,否则重命名为其他名称)

      【讨论】:

        【解决方案4】:

        进一步了解 Nate 的帖子,可以在以下位置找到来自 Apple 的描述命名约定的特定文档:

        Supporting High-Resolution Screens - Updating Your Image Resource Files

        根据链接,命名约定模式如下:

        • 标准:<ImageName><device_modifier>.<filename_extension>
        • 高分辨率:<ImageName>@2x<device_modifier>.<filename_extension>

        例如:“MyImage@2x~ipad.png”用于高分辨率 iPad 专用图像或“MyImage~iphone.png”用于标准分辨率 iPhone 专用图像。

        【讨论】:

          【解决方案5】:

          我使用的是我在创建任何应用程序之前首先开发的“资源管理器”。 此资源管理器可以在加载资源配置文件(主要是 XML)后决定命名约定。 这样,一切对 GUI 的程序员来说都是透明的,你只需要担心创建内容 :)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-03-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-11-27
            • 2011-09-28
            • 1970-01-01
            相关资源
            最近更新 更多