mac*_*mac 14 iphone objective-c uiimage ipad
在我的应用程序中,我需要根据设备iPad/iPhone 4/iPhone 3设备获得正确的图像.
例如:
我有一个名为a.png(宽度40,高度20)的iPhone 3/iPod图像和a@2x.png(宽度80,高度40)iPhone 4.
如果我提到了代码
UIImage *myImage=[UIImage imageNamed:@"a.png"];
Run Code Online (Sandbox Code Playgroud)
如果它是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加载图像它工作正常.
但我需要在不使用条件的情况下使用它,并使用像a.pngiPhone/iPod,a.@2x.pngiPhone 4和iPad 等命名约定.
提前致谢.
iPad没有图像命名约定,仅适用于视网膜显示,因此您的图像看起来很清晰.如果你想支持iPad,那么你需要为它创建一个单独的布局(单独的xib),在大多数情况下甚至是单独的图像集,因为你给了一个更大的布局.
但是,您可以为自己创建一个命名约定,并将字符串名称传递给静态函数,该函数将根据设备将名称转换为iPad/iphone.
例如
[UIImage imageNamed: [MyAppUtils getImageName:@"a.png"]];
Run Code Online (Sandbox Code Playgroud)
在getImageName函数中,你可以进行转换(如果是iphone则使用相同的名称,否则重命名为其他名称)
除了Nate的帖子之外,Apple的具体文档描述了命名约定,可以在以下位置找到:
根据链接,命名约定模式如下:
<ImageName><device_modifier>.<filename_extension><ImageName>@2x<device_modifier>.<filename_extension>例如:"MyImage@2x~ipad.png"用于高分辨率iPad专用图像,或"MyImage~iphone.png"用于标准版本的iPhone专用图像.
| 归档时间: |
|
| 查看次数: |
12135 次 |
| 最近记录: |