2012-03-07 15 views
69

Apple presentó un nuevo iPad que admite gráficos retina.Cómo admitir gráficos de retina de iPad y iPhone en aplicaciones universales

Vi this link retina graphic in apple apps. Como puede ver, solo use el sufijo "@ 2x" para la pantalla retina del iPad.

Tengo una aplicación universal. Entonces, ¿cómo apoyar la retina en el nuevo iPad y iPhone? ¿Retina iPad usará el sufijo "@ 2x" similar al iPad?

+0

@ 2x es un sufijo, no un prefijo y por supuesto la retina iPad utiliza porque tiene exactamente las dimensiones de la pantalla se duplicó – Felix

+0

¿Pero qué hacer si tengo el iPhone y el IPAD. Compruebe si este iPhone luego use, por ejemplo, image-iphone else image-ipad? – rowwingman

+0

ver esta respuesta http://stackoverflow.com/a/3184200/550177 tienes que usar UIInterfaceIdiom() – Felix

Respuesta

138

Acabo de crear una aplicación de prueba y probé.

Así que para dispositivos sin retina:
ImageName.png - para el iPhone/iPod
ImageName~ipad.png - Para iPad

Para los dispositivos con pantalla de retina:
[email protected] - para el iPhone/iPod
[email protected]~ipad.png - Para iPad

Y aún puede usar @ 2x si la imagen de alta resolución de su iPhone y la imagen de alta resolución del iPad tienen el mismo tamaño.
Para cargar la imagen simplemente use [UIImage imageNamed:@"ImageName.png"];
Acabo de probarlo en el simulador de iOS para iOS 5.1, 5.0 y 4.3.
Por cierto, ¿por qué debería usar @ 2x y nada más?

Lo principal es que no debe usar los mismos gráficos en iPhone y iPad, porque el iPhone y el iPad tienen un tamaño diferente. Y si va a usar el mismo tamaño, los gráficos ya estarán listos para su iPad retina display (si ya usó iPhone retina display). Si tiene imágenes de diferentes tamaños, usará diferentes nombres de imágenes para iPhone y iPad. Entonces en este lado solo necesitas agregar @ 2x sufijo. Es por eso que deberías usar solo el sufijo @ 2x. - estos son mis pensamientos.

+25

Tenga cuidado con el caso de la letra P, tuve problemas debido a la escritura ~ iPad o ~ iPhone, curiosamente funciona con el simulador pero no con el dispositivo real. Además, he descubierto que si no tienes una versión @ 2x ~ ipad, entonces el nuevo iPad usará la versión @ 2x, que en este caso es el archivo retina del iPhone. Tenga también esto en cuenta ... – LightMan

+5

El simulador no distingue entre mayúsculas y minúsculas (una causa común de problemas cuando se distribuye por primera vez en el dispositivo) por eso funciona en el simulador independientemente de la carcasa – Matt

+4

El doc para esto: http://developer.apple .com/library/ios/# documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreens/SupportingHiResScreens.html # // apple_ref/doc/uid/TP40010156-CH15-SW8 –

6

encontré que el iPad mini/retina hardware no IPAD, no simulador, caería de nuevo en ImageName.png, no ImageName ~ ipad.png como era de esperar de la respuesta de rowwingman.

Mirando el docs, referenciado en otro StackOverflow question por Nate, parece que añadiendo que el dispositivo iPhone imágenes es la forma correcta de hacerlo.

MyImage.png - Versión predeterminada de un recurso de imagen.

[email protected] - Versión de alta resolución de un recurso de imagen para dispositivos con pantallas Retina.

MyImage ~ iphone.png - Versión de una imagen para iPhone y iPod touch.

[email protected]~iphone.png - Versión de alta resolución de una imagen para dispositivos iPhone y iPod touch con pantallas Retina.

Image, Sound, and Video Resources

Cuestiones relacionadas