Ecco un eccezione dal mio blog su questo argomento
[UIImage imageNamed:] carica automaticamente @ versioni 2x delle immagini durante l'esecuzione su un dispositivo retina. Sfortunatamente, imageNamed: NON caricherà automaticamente -568h @ 2x versioni di immagini quando è in esecuzione su un iPhone 5.
A volte questo non importa, ad esempio le icone e la grafica non a schermo intero sono probabilmente le stesse su iPhone 4 & 5. Tuttavia, se si dispone di immagini di sfondo a schermo intero o di immagini di sfondo a larghezza intera/altezza per barre degli strumenti, ecc. Si avranno problemi. Molto probabilmente le tue immagini a 480 immagini si allungheranno (e probabilmente avranno un aspetto orribile come risultato).
È possibile controllare manualmente le dimensioni dello schermo e caricare l'immagine a destra in questo modo:
UIImage* myImage;
CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
if ([UIScreen mainScreen].scale == 2.f && screenHeight == 568.0f) {
myImage = [UIImage imageNamed:@"myImage-568h.png"];
} else {
myImage = [UIImage imageNamed:@"myImage.png"];
}
C'è un modo di alterare UIImage imageNamed quindi non carica automaticamente l'immagine a destra. Vedi il collegamento sotto per i dettagli.
Altro: http://pervasivecode.blogspot.co.uk/2012/09/making-apps-work-on-iphone-5-screen-size.html
EDIT: @Sound Blaster & @GrizzlyNetch sono destra, nel codice è necessario utilizzare imageNamed: @ "myImage-568h.png"], ma il nome del file effettivo dovrebbe essere [email protected] Se non lo fai, allora la scala non è corretta, proprio come hanno detto.
fonte
2012-09-21 14:28:33
È necessario separare diverse domande in diverse domande. –