2011-01-31 12 views
6

Quiero usar diferentes imágenes en mi aplicación de iPhone, dependiendo de si el dispositivo actual es un iPhone 3G, iPhone 4 o iPad. Intenté obtener la resolución (tamaño) de la pantalla del dispositivo, pero siempre devuelve 320 X 480 para los diferentes iPhones.¿Cómo uso diferentes imágenes, dependiendo del tipo de dispositivo con iOS?

¿Cómo puedo determinar en qué tipo de dispositivo me estoy ejecutando para poder proporcionar las imágenes correctas?

No deseo obtener la versión del sistema operativo del iPhone.

+8

nada malo con el '@ 2x' esquema de nombres para las imágenes de alta resolución? – BoltClock

Respuesta

7

Si desea esta información con el fin de seleccionar los gráficos adecuados para su resolución, entonces la respuesta de middaparka es lo que está buscando.

Sin embargo, si necesita información sobre el modelo o la resolución del dispositivo para un propósito diferente, entonces UIDevice y UIScreen pueden ser lo que usted desea.

NSString *myDeviceModel = [[UIDevice currentDevice] model]; 
CGRect myScreenSize = [[UIScreen mainScreen] bounds].size; 
+1

+1 Me encantaría saber por qué se votó negativamente: después de todo, esta es la respuesta "pura". –

10

Hay más probabilidades hay necesidad de hacer lo que estás tratando de hacer, ya que iOS tiene soporte para cargar las imágenes en el tamaño apropiado para el iPhone (retina y pre-retina resoluciones) y el IPAD.

Lea el Resource Programming Guide (específicamente las secciones "Especificación de imágenes de alta resolución en iOS" y "iOS admite recursos específicos del dispositivo") y iOS Application Programming Guide para obtener más información.

Por cierto, tanto en el pre y post retina iPhone/vainas tienen un punto de resolución de 320 X 480. Manzana distingue entre los tamaños de punto (independiente de la resolución) y el tamaño de píxel para ayudar a las cosas en el camino.

+1

Solo una pequeña corrección: el iPad no tiene una resolución de punto de 320x480, solo los dispositivos más pequeños. El iPad tiene una resolución de punto de 1024x768. –

+0

@Kendall Buen punto: significa "Pod". Han arreglado :-) –

+1

También podría agregar que puede probar un factor de forma de tamaño de tableta usando 'if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)', en caso de que los futuros dispositivos de tableta no tengan un tamaño de pantalla de 1024x768 puntos exacto. –

Cuestiones relacionadas