2014-10-08 51 views

回答

4

我知道這可能不是你想要的答案,但我有完全相同的問題,並簡單地重命名的圖像解決了這一問題。

換句話說,我複製了原始文件,該文件不會加載到同一目錄中的另一個文件,並且名稱不同。

然後我將這個新文件添加到Xcode項目中,並刪除了第一個。

我改變了代碼,以反映新形象的名字:

// Asset Catalog problem loading this: 
    // [imgBackground setImage:[UIImage imageNamed:@"[email protected]"]]; 
    [imgBackground setImage:[UIImage imageNamed:@"Home_BG-568h"]]; 

我略微改變了以往開發商的命名約定,一起去[email protected]

希望這可以幫助別人。

+0

thnx爲你的rply。我解決了我的問題。 – Saggy 2014-10-16 06:19:25

+1

在我的應用程序中,我不得不在iPhone6和iPhone 6+中使用@ 2x〜ipad圖像來達到某種目的。但它沒有拍攝那些圖像。所以我只是將這些圖像重新命名爲擴展名,而不是像「-hd」這樣的標準類型擴展名。現在它的工作非常完美! – Saggy 2014-10-16 06:21:56

+0

有沒有辦法避免這個錯誤,而不重新命名資源?我們有數百個名爲'Icon @ 57x57.png'的圖標資源等。將它們全部重命名將是完全不切實際的。這一切都工作在iOS 8之前完美。 – devios1 2015-01-17 21:02:32

2

我發現了一種通過繞過蘋果的命名約定解釋來加載圖像的方法。除了使用[UIImage imageNamed:],圖像作爲二進制加載到NSData然後初始化一個UIImage與數據像這樣:

NSData* imageData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"[email protected]" ofType:@"png"]]; 
UIImage* icon = [UIImage imageWithData:imageData]; 

被警告,雖然,還有用這種方法沒有緩存,把它多次將每次加載一個新圖像。如果你想緩存,你必須自己實現這個邏輯。

圖像的比例也可能不正確。如果是視網膜規模(@ 2倍)的圖像,可以調整加載圖像的規模,像這樣:

icon = [UIImage imageWithCGImage:icon.CGImage scale:2.f orientation:UIImageOrientationUp]; 
0

我有同樣的問題在我的普及,應用項目。

該解決方案也是所有「通用圖像」的重命名,僅用於一個設備(iPhone & & iPad || iPhone || iPad)。例如。 [email protected],因爲沒有對應的存在也不需要...