2016-04-22 80 views
4

我試圖從Image.xcassets文件夾加載啓動圖像,但無濟於事。還有其他answer S(和this one)上,以便主旨回答,但他們的主要解決方案,簡單地加載圖像,像這樣從xcassets加載UIImage

UIImage *image = [UIImage imageNamed:@"[email protected]"]; 

返回nil我。

文件名命名正確,項目設置爲使用資產。

有沒有人有任何想法我如何做到這一點或我可能做錯了什麼?

在此先感謝。

編輯:

screenshot of my assets folder

編輯2:我的最終代碼:

-(void) loadSplashImage{ 
if ([self isiPad]){ 
    self.imageViewSplash.image = [UIImage imageNamed:@"Default-Portrait"]; 
} 
else{ 
    if (self.view.frame.size.height == 480){ 
     self.imageViewSplash.image = [UIImage imageNamed:@"Default"]; 
    } 
    else if (self.view.frame.size.height == 568){ 
     self.imageViewSplash.image = [UIImage imageNamed:@"Default-568h"]; 
    } 
    else if (self.view.frame.size.height == 667){ 
     self.imageViewSplash.image = [UIImage imageNamed:@"Default-667h"]; 
    } 
} 

}

請注意它適用於只是肖像。

+0

你必須給資產名稱而不是圖像名稱。 –

+0

我也嘗試將Default.png(現已過時)添加到資產中。 –

+0

檢查答案:http://stackoverflow.com/a/32945986/3202193 –

回答

6

您不必指定名稱中圖像的大小。它會自動加載最適合運行應用程序的設備的大小。所以你的代碼應該是。

UIImage *image = [UIImage imageNamed:@"Default"]; 

其中default是xcassets的資源,你的萊夫特賽德列表上看到的一個名稱。

+0

謝謝果凍,但我仍然無法獲得零。 –

+0

好吧,發佈'xcassets'的截圖,以便我們看到它的樣子 – Jelly

+0

完成並編輯了帖子。 –

0

你應該有2個文件:

(1)爲Default.png(或任何其他圖像格式) - 非視網膜

(2)[email protected] - 視網膜

現在,要獲得這個圖像,你不必在文件名的末尾使用@ 2x。只使用該圖片資源的名稱。

+0

謝謝NSPratik,但我仍然無法獲得。 –

+0

嘗試使用除「默認」以外的名稱 – NSPratik

+0

我嘗試使用Icon,而不是零。 –