在Xcode中指定用于iPad的图像,例如iPhone 4的@ 2x

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

到这个时候,大家都知道,如果你有一个名为“ football.png ”的图像,并希望支持视网膜显示,你应该加倍的图像大小,并称之为“ football@2x.png ”。

我的问题是,如果有什么东西像iPad的* football@iPad_which_is_another_size.png*?

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

在iOS 4.0及更高版本中,可以将单个资源文件标记为仅在特定types的设备上可用。要将资源文件与特定设备相关联,请将自定义修饰符string添加到其文件名。 包含此修饰符string将生成具有以下格式的文件名:

<basename><device>.<filename_extension> 

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

欲了解更多信息: http : //developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/Introduction/Introduction.html在“iOS支持设备特定的资源”部分。

我不认为有一种方法让操作系统自动为您select,就像Retina显示屏一样。 但是,您可以创build一个方便的方法来为您返回您的文件名称,如:

 -(NSString*) myImageFilename:(NSString*)baseName withExtension:(NSString*)ext { if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { return [NSString stringWithFormat:"%@@iPadSize.%@"]; } else { return [NSString stringWithFormat:"%@.%@"]; } }