Here's一個鏈接,實際上將幫助你。保存啓動圖像,如果您在文件名的末尾添加「[email protected]」,iOS不會自動選擇正確的圖像。在above link中提到了一些幫助方法,可以使您的工作變得簡單。
我已經在我上面,在這裏提到的鏈接採用的代碼是爲對象 - 輔助功能:
-(BOOL) IsTall
{
return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) && ([[UIScreen mainScreen] bounds].size.height * [[UIScreen mainScreen] scale] >= 1136);
}
小類別的寫作,將有助於太。
@interface NSString (Special)
-(NSString*)correctImageNameForiPhone5
@end
@implementation NSString (Special)
-(NSString*)correctImageNameForiPhone5
{
if([self isTall])
return [email protected]_-; //Do the correct NSString magic here
else
return -originalImageName-;
}
@end
最後,當您正在訪問的UIImage對象:
NSString *filename = @"backgroundImage.png";
UIImage *img = [UIImage imageNamed:[filename correctImageNameForiPhone5]];
這裏的假設是,你將不得不與「-568h @ 2X」結束所有的iPhone5專用的圖像文件名。如果你把它放到你的項目中,這個代碼示例肯定不會工作,但你明白了。它需要一些NSString修復程序。
這是以編程方式進行的,所以帶有背景的xibs不能再使用? – Gruntcakes
如果iOS無法處理基於命名約定的自動調整大小,我沒有看到任何其他選項。雖然我很想知道是否有出路! – Ravi
還有另一種方法來以編程方式處理較高的圖像。 https://github.com/gaj/imageNamed568 – UIBuilder