2010-07-18 26 views
5

estoy un poco confundido sobre cómo utilizar el simulador para crear aplicaciones que necesitan para apoyar la nueva resolución más alta del iPhone 4.pantalla de retina de Iphone en el simulador

me habría excepto cuando se selecciona el simulador de iphone4 ejecutar la aplicación en ese [[UIScreen mainScreen] bounds] me daría 960x640, pero en su lugar todavía me da la resolución anterior (480x320)?

Aunque el simulador de iphone4 aparece como un teléfono gigante en mi pantalla, parece que solo consta de 480x320 píxeles. Por ejemplo, cuando quisiera mostrar algo en la línea 700, ¿se caerá de la pantalla?

Gracias por cualquier aportación sobre esto.

Respuesta

8

UIScreen tiene un nuevo método scale. Multiplica el bounds.size por la escala para obtener los píxeles. Puede pensar en valores sin escala como puntos o píxeles virtuales.

Tenga en cuenta que UIScreen tiene un método de escala desde al menos 3.2 pero solo se ha documentado desde 4.0, por lo que respondsToSelector lo engañará. Compruebo la escala de UIImage incluso cuando quiero saber sobre UIScreen.

UIScreen *mainScreen = [UIScreen mainScreen]; 
CGFloat scale = [mainScreen scale]; 
CGRect bounds = [mainScreen bounds]; 
CGRect pixels = bounds; 

if (scale > 0) { 
    pixels.origin.x *= scale; 
    pixels.origin.y *= scale; 
    pixels.size.width *= scale; 
    pixels.size.height *= scale; 
} 
+0

Gracias por su respuesta. ¿Alguna posibilidad de responder mi segunda pregunta también? – Oysio

4

En cuanto a su segunda pregunta sobre la resolución, quizás esto lo ayude.
Desde iOS4 y posterior hay píxeles, puntos y factores de escala.

[[UIScreen mainScreen] bounds] 

bounds will return points (480x320) no píxeles (960x640).
iOS4 Application Programming Guide (puntos frente a píxeles):

En iOS 4 y posteriores, el UIScreen, UIView, UIImage y CALayer clases exponen a un factor de escala que le dice la relación entre puntos y píxeles para que objeto particular Antes de iOS 4, este factor de escala era se supone que es 1.0, pero en iOS 4 y más tarde puede ser 1.0 o 2.0, dependiendo de la resolución del dispositivo subyacente . En el futuro, otros factores de escala también pueden ser posibles.

+0

Me estoy poniendo la escala entera como 0 en el simulador ... ¿Algún comentario? –

Cuestiones relacionadas