Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通用应用程序iPad/iPhone图像命名约定?_Iphone_Objective C_Ipad_Uiimage - Fatal编程技术网

通用应用程序iPad/iPhone图像命名约定?

通用应用程序iPad/iPhone图像命名约定?,iphone,objective-c,ipad,uiimage,Iphone,Objective C,Ipad,Uiimage,在我的应用程序中,我需要基于iPad/iPhone4/iPhone3设备获得正确的图像 例如: 我有一张iphone3/iPod的图片名为a.png(宽40,高20),和a@2x.png(宽80,高40)适用于iPhone 4 如果我提到代码 UIImage *myImage=[UIImage imageNamed:@"a.png"]; 如果是iPhone4,myImage包含(80*40)个图像。 如果是iPod/iPhone3,myImage包含(40*20)个图像 我的问题是,我如何获得

在我的应用程序中,我需要基于iPad/iPhone4/iPhone3设备获得正确的图像

例如:

我有一张iphone3/iPod的图片名为
a.png
(宽40,高20),和
a@2x.png
(宽80,高40)适用于iPhone 4

如果我提到代码

UIImage *myImage=[UIImage imageNamed:@"a.png"];
如果是iPhone4,myImage包含(80*40)个图像。 如果是iPod/iPhone3,myImage包含(40*20)个图像

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

我试着给
一个~ipad.png
作为图像名,但它不起作用。你能指出哪里有错误吗

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

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


提前感谢。

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

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

例如

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

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

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


它说iphone使用“~iphone”,iPad没有后缀。尽管有传闻说“~ipad”也可以使用。

关于Nate的帖子,苹果公司描述命名约定的具体文档可以在以下网站找到:

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

  • 标准:
  • 高分辨率:
    @2x.

例如:MyImage@2x~ipad.png”表示高分辨率的ipad特定图像,或“MyImage~iphone.png”表示标准分辨率的iphone特定图像。

我知道这是一篇老文章,但我认为截图提供了有关命名约定的更清晰的概念

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

设备特定资源命名约定的更新链接。
[UIImage imageNamed: [MyAppUtils getImageName:@"a.png"]];