Quello che ho trovato quando si costruisce con XCode 4.2 (iOS SDK 5.0) in esecuzione su Snow Leopard è il seguente:
immagini caricate di programmazione utilizzando [UIImage imagedNamed: ] nel tuo codice caricherà correttamente la retina @ 2x immagini sulla retina iPad.
Le immagini specificate sui pulsanti e le viste in Interface Builder I file XIB in genere NON caricano correttamente le immagini di retina @ 2x.
La soluzione che ho scoperto era quello di costringere UIImage per memorizzare nella cache ciascuna delle immagini si fa riferimento nella vostra XIB utilizzando [UIImage imagedNamed:] chiamate nel vostro controller della vista del (o dei casi) initWithnibName: (NSString *) bundle: (NSBundle *) . Il metodo programmatico esegue un buon caricamento @ 2x e il sistema lo memorizza nella cache, che il meccanismo di caricamento XIB finisce per fare riferimento, producendo immagini di retina. Ad esempio:
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Doing this to precache proper retina versions, because older xcode nibs aren't loading them correctly on retina iPads with XCode 4.2 builds
[UIImage imageNamed:@"my_button.png"];
[UIImage imageNamed:@"my_other_button.png"];
}
return self;
}
Suppongo che l'edificio con XCode 4.3 (SDK 5.1) funziona correttamente con XIBs, ma non ero preparato ad eseguire l'aggiornamento a Lion solo per usare quella versione di XCode.
fonte
2012-05-29 14:35:48
Non penso che nessuna app pre-iPhone-4 abbia avuto l'artwork giusto ... – Thilo
Abbastanza sicuro, qualcuno sa per certo se questo è corretto? –