在Xcode中为iPad指定图像,如iPhone 2的@ 2x

时间:2011-04-04 07:22:12

标签: objective-c xcode ios ipad

我已将当前目标升级到iPad并制作了一个通用应用程序,如果有这个问题的答案,将我的iphone应用程序调整为ipad的时间会大大减少。

此时大家都知道,如果你有一个名为“ football.png ”的图片,并希望支持Retina Display,你应该将图像的大小加倍并称之为“ football @ 2x.png ”。

我的问题是,如果有像@football@iPad_which_is_another_size.png *这样的iPad吗?

如果没有办法,我是否必须将每个图像连接到IBOutlet并以编程方式设置框架?

2 个答案:

答案 0 :(得分:27)

  

在iOS 4.0及更高版本中,它是可能的   将各个资源文件标记为   仅适用于特定类型的   设备   将资源文件与a关联   特定设备,您添加自定义   修饰符字符串到其文件名。该   包含此修饰符字符串   产生具有以下内容的文件名   格式:

 <basename><device>.<filename_extension>

要加载iPad特定资源,您应使用~ipad。示例:创建名为AwesomeImage~ipad.png的图像,并使用[UIImage imageNamed:@"AwesomeImage.png"]加载,就像使用视网膜显示图像一样。

有关详细信息:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/Introduction/Introduction.html 在“iOS支持设备特定资源”部分。

答案 1 :(得分:2)

我认为没有办法让操作系统自动为您选择,就像Retina显示屏一样。但是,您可以创建一个方便的方法来为您返回文件名:

-(NSString*) myImageFilename:(NSString*)baseName withExtension:(NSString*)ext {

 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
  return [NSString stringWithFormat:"%@@iPadSize.%@"];
 } else {
  return [NSString stringWithFormat:"%@.%@"];
 } 

}