2013-09-27 3 views
11

Sto cercando di implementare utilizzando Images.xcassets in un progetto su cui sto lavorando. Da quello che ho capito, posso solo inserire tutte le immagini di diverse dimensioni per diversi dispositivi e poi chiama [UIImage imageNamed: @ "name_of_image_set"] e restituirà l'immagine corretta per il dispositivo su cui sto lavorando.Schermo iPhone 4 "con xcassets che non tira immagine corretta

Sembra che stia tirando l'immagine corretta per tutto tranne l'iPhone 5/5s/5c con il 4 "schermo. Per questo la dimensione dello schermo mi dà l'immagine per l'iPhone @ 2x con lo schermo da 3,5" .

Image of config in Images.xcassets

Ecco il JSON che è incluso nella cartella con le immagini.

{ 
    "images" : [ 
    { 
     "idiom" : "iphone", 
     "scale" : "1x", 
     "filename" : "bg.png" 
    }, 
    { 
     "idiom" : "iphone", 
     "scale" : "2x", 
     "filename" : "[email protected]" 
    }, 
    { 
     "idiom" : "iphone", 
     "filename" : "[email protected]", 
     "subtype" : "retina4", 
     "scale" : "2x" 
    }, 
    { 
     "idiom" : "ipad", 
     "scale" : "1x", 
     "filename" : "bg~ipad.png" 
    }, 
    { 
     "idiom" : "ipad", 
     "scale" : "2x", 
     "filename" : "[email protected]~ipad.png" 
    } 
    ], 
    "info" : { 
    "version" : 1, 
    "author" : "xcode" 
    } 
} 

Tutto sembra essere in ordine, sto solo equivoco come xcassets dovrebbero funzionare?

Grazie

Joel Bell

+0

possibile duplicato del [Nuovo nome di immagini per iPhone 5] (http://stackoverflow.com/questions/12497776/new-image-name-for -iphone-5) –

+0

Ho visto questa domanda, questa domanda è specifica su xcode 5 e sulla nuova gestione delle risorse funzionalità. Qual è il punto di essere in grado di includere 4 "risorse dello schermo iPhone in un" set di immagini "se non c'è modo di uscirne di nuovo? –

+0

Sei sicuro? Non sono tornato indietro e l'ho guardato per un po ', ma L'ho implementato bene su Xcode 5 –

risposta

4

Mi sono imbattuto in questo problema e il problema sembra riguardare le versioni iOS inferiori alla 7.0 La soluzione per me era creare un set di immagini separato con una singola immagine @ 2x su di esso e creare un'istanza corretta a livello di codice rilevando il iPhone dimensione dello schermo in codice come fatto here

correlati: Why isn't my Asset Catalog returning R4 images?

0

Ho avuto lo stesso problema ma solo in iOS7 e carico le immagini a livello di codice, ma dovrebbe essere lo stesso problema.

Nel mio viewDidLoad ho aggiunto:

if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) { // if iOS 7 
    self.edgesForExtendedLayout = UIRectEdgeNone; //layout adjustements 
} 

E 'fondamentalmente solo riconosce iOS7 e applica alcune regolazioni di layout. Dopo aver aggiunto questo codice, è stata selezionata l'immagine corretta. Finalmente ho caricare la mia immagine, che non si deve fare:

[productview setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]]; 

trovato questa risposta anche qui a StackOverflow, ma non ha trovato più.

+0

Dubito seriamente che questo è stato il problema risolto – ale0xB

+0

Questo commento aiuta seriamente a risolvere il problema ... – Charles

+0

Beh, ho provato e non funziona. In realtà il metodo che stai usando per rilevare La versione di iOS non è affatto buona. Se il targeting è il 6.1, [UIImage imagenamed:] non è in grado di selezionare l'immagine R4 corretta ... – ale0xB