2013-12-09 50 views
5

Xcode的默認Images.xcassets文件具有LaunchImage的插槽,其中對於肖像iPhone應用程序,有5個可能的插槽。從xcassets文件獲取啓動圖像的大小錯誤

根據documentation,要從xcassets文件中獲取正確大小的圖像,請使用[UIImage imageNamed:]

然而,運行下面的代碼在iPhone Retine(4英寸)的模擬器:

UIImage *splashImage = [UIImage imageNamed:@"LaunchImage"]; 
NSLog(@"%@", NSStringFromCGSize(splashImage.size)); 

產生以下輸出:

{320, 480} 

這顯然是錯誤的大小。

我已確保xcassets文件中的映射是正確的,並且已確認所有維度。我似乎也無法從xcassets文件中的給定集中請求特定圖像,這意味着我不能這樣做:[UIImage imageNamed:@"LaunchImageR4"]

由於文件被添加到xcassets文件中,我也無法訪問原始圖像文件,所以自定義解決方案似乎是不可能的。

有沒有人有任何想法我會如何解決這個問題?

回答

-1

我相信啓動時會自動加載正確的啓動映像。這並不意味着在運行時從xcassets中拉出。由於它在運行時,您必須自己檢查使用哪個設備,因爲圖像目錄只能使用@ 2x後綴(不是設備的大小)設置爲拉視網膜與非視網膜。

您可以使用this post來確定正在使用哪個設備並按名稱加載正確的圖像。

+0

是的,但我無法訪問原始啓動映像文件。我的啓動圖像文件被稱爲'AppSplash.png',但如果我使用UIImage訪問它,它將變爲空白。因此你的解決方案將無法工作。 – Snowman

0

啓動圖像是一種特殊的圖像集。您無法使用[UIImage imageNamed:@"LaunchImage"]獲取適合您設備的正確啓動圖像(即iPhone 3「,4」或iPad + Retina)。

+0

我不明白你的答案在說什麼。你只是告訴我,我不能? – Snowman

+0

不使用'imageNamed:'如果你想知道你是否在4「顯示器上,那麼只需檢查'[UIScreen mainScreen] .bounds.size.height == 568.0f',然後你必須手動選擇正確的形象。 –