2014-10-08 14 views

Odpowiedz

4

wiem, że to chyba nie jest odpowiedź chcesz, ale miałem dokładnie ten sam problem i po prostu zmiana nazwy obrazu rozwiązaniu problemu.

Innymi słowy, skopiowałem oryginalny plik, który nie został załadowany do innego pliku w tym samym katalogu, z inną nazwą.

Dodałem ten nowy plik do projektu Xcode i usunąłem pierwszy.

Zmieniłem kod, aby odzwierciedlić nową nazwę obrazu:

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

ja nieco zmieniona konwencja nazewnictwa poprzedniego dewelopera, aby przejść z [email protected].

Mam nadzieję, że to komuś pomaga.

+0

thnx za twoją rezerwę. Mam rozwiązanie mojego problemu. – Saggy

+1

W mojej aplikacji musiałem użyć obrazów @ 2x ~ ipad w iPhone6 ​​i iPhone 6+ w jakimś celu. Ale to nie było przyjmowanie tych obrazów. Zmieniam nazwy tych obrazów z rozszerzeniem innym niż standardowe rozszerzenie typu, takie jak "-hd". A teraz działa doskonale! – Saggy

+0

Czy istnieje sposób na uniknięcie tego błędu bez zmiany nazwy zasobów? Mamy setki zasobów ikon o nazwie 'Icon @ 57x57.png', itp. Zmiana ich nazwy byłaby całkowicie niepraktyczna. To wszystko działało doskonale przed iOS 8. – devios1

2

Odkryłem sposób na ładowanie obrazów poprzez omijanie interpretacji konwencji nazewnictwa firmy Apple. Zamiast używać [UIImage imageNamed:], załadować obraz jako binarnego do NSData a następnie zainicjować UIImage z tych danych tak:

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

ostrzegam jednak, że nie ma buforowania z tej metody i nazywając go wielokrotnie będzie ładuj nowy obraz za każdym razem. Jeśli chcesz buforować, musisz wdrożyć tę logikę samodzielnie.

Skala zdjęcia może również nie być poprawna. Jeśli jest to skala siatkówki (@ 2x) obraz można wyregulować skalę załadowanego obrazu tak:

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

Miałem ten sam problem w moim Universal-app-projekt.

Rozwiązaniem jest również zmiana nazwy wszystkich "obrazów uniwersalnych", które są używane na obu urządzeniach lub tylko na jednym urządzeniu (iPhone & & iPad || iPhone || iPad). NA PRZYKŁAD. [email protected] ponieważ nie istnieje żaden odpowiednik ani nie jest potrzebny ...

Powiązane problemy