2012-03-07 1 views
69

Apple ha presentato un nuovo iPad che supporta la grafica retina.Come supportare la grafica retina sia per iPad che per iPhone in applicazioni universali

Ho visto this link retina graphic in apple apps. Come puoi vedere la mela usa solo il suffisso "@ 2x" per il display iPad retina.

Ho un'app universale. Quindi, come sostenere la retina nel nuovo iPad e iPhone? L'iPad retina utilizzerà il suffisso "@ 2x" simile all'iPad?

+0

@ 2x è un suffisso, non è un prefisso e, naturalmente, della retina iPad lo usa perché ha esattamente le dimensioni del display raddoppiati – Felix

+0

ma cosa fare se ho iPhone e iPad. Controlla se questo iPhone quindi usa ad esempio image-iphone else image-ipad? – rowwingman

+0

vedi questa risposta http://stackoverflow.com/a/3184200/550177 devi usare UIInterfaceIdiom() – Felix

risposta

138

Ho appena creato un'applicazione di test e testato.

Così, per i dispositivi senza retina:
ImageName.png - Per iPhone/iPod
ImageName~ipad.png - Per iPad

Per i dispositivi con display retina:
[email protected] - per iPhone/iPod
[email protected]~ipad.png - Per iPad

E puoi ancora usare @ 2x se l'immagine ad alta risoluzione dell'iPhone e l'immagine ad alta risoluzione dell'iPad hanno le stesse dimensioni.
Per caricare l'immagine è sufficiente utilizzare [UIImage imageNamed:@"ImageName.png"];
L'ho appena testato sul simulatore iOS per iOS 5.1, 5.0 e 4.3.
A proposito, perché dovresti usare @ 2x e niente di più.

La cosa principale perché non si dovrebbe usare la stessa grafica su iPhone e iPad, perché iPhone e iPad ha dimensioni diverse. E se userai le stesse dimensioni della grafica già fatto per il display della retina iPad (se in precedenza utilizzi il display Retina iPhone). Se immagini con dimensioni diverse, utilizzerai nomi di immagini diversi per iPhone e iPad. Quindi in questo lato è sufficiente aggiungere il suffisso @ 2x. Ecco perché dovresti usare solo il suffisso @ 2x. - questi sono i miei pensieri.

+25

Prestare attenzione al caso della lettera P, ho avuto problemi a causa della scrittura ~ iPad o ~ iPhone, stranamente funziona con il simulatore ma non con il dispositivo reale. Inoltre, ho scoperto che se non hai una versione @ 2x ~ ipad, il nuovo iPad userà la versione @ 2x, che in questo caso è il file retina di iPhone. Prendi anche questo in considerazione ... – LightMan

+5

Il simulatore non fa distinzione tra maiuscole e minuscole (una causa comune di problemi durante la prima distribuzione al dispositivo) ecco perché funziona sul simulatore indipendentemente dal case – Matt

+4

Il doc per questo: http://developer.apple .com/library/ios/# documentation/2DDrawing/Concettuale/DrawingPrintingiOS/SupportingHiResScreens/SupportingHiResScreens.html # // apple_ref/doc/uid/TP40010156-CH15-SW8 –

6

ho scoperto che il mini iPad/iPad retina hardware non, non simulatore, sarebbe ripiegare su imagename.png, non ImageName ~ ipad.png come ci si aspetterebbe da risposta di rowwingman.

Guardando il docs, si fa riferimento in un altro StackOverflow question da Nate, sembra come se aggiungendo il dispositivo per iphone immagini è il modo corretto per farlo.

MyImage.png - Versione di default di una risorsa immagine.

[email protected] - Versione ad alta risoluzione di una risorsa immagine per dispositivi con display Retina.

MyImage ~ iphone.png - Versione di un'immagine per iPhone e iPod touch.

[email protected]~iphone.png - versione ad alta risoluzione di un'immagine per i dispositivi iPhone e iPod touch con display Retina.

Image, Sound, and Video Resources