2012-09-13 27 views
6

Con el anuncio del iPhone 5 y los nuevos iPod hoy, estoy empezando a trabajar en la optimización de mi aplicación para aprovechar el nuevo espacio de pantalla extra. Ya llegué al punto en que mi aplicación ya no está en "buzón". Sé que es temprano, pero ¿alguien sabe cómo podría distinguir entre los dispositivos nuevos y más altos y los antiguos?iOS 6 - ¿Distinguir entre iPhone 5 y otros dispositivos?

Idealmente, sería algo como esto:

if (device is iPhone 5 or taller iPod touch) { 
    do stuff that is ideal for the taller screen 
} else { 
    do what I've been doing before for the smaller screen 
} 

Gracias! ¡Espero que todos los demás también disfruten lo que Apple anunció hoy también!

+0

Con iOS6 todavía bajo NDA, este tipo de preguntas puede que no sean respondidas en lugares públicos. Sugiero visitar los foros de desarrolladores de Apple. –

+0

Oh, está bien. Como el gerente general había salido, no estaba seguro de si eso todavía estaba sucediendo, pero gracias. Voy a ir a los foros de desarrolladores a partir de ahora con cosas como esta. – mhbdr

+0

@SlyRaskal - Esto no es específico de iOS 6.0, por lo que es una pregunta perfectamente viable aquí. –

Respuesta

6

En la parte superior de mi cabeza, puede usar información de límites para UIScreen [UIScreen mainScreen].bounds y verificar la altura o mejor la proporción de la pantalla.

+0

¡Voy a intentarlo! ¡Gracias por responder! :) – mhbdr

12
- (BOOL)isTall 
{ 
    CGRect bounds = [[UIScreen mainScreen] bounds]; 
    CGFloat height = bounds.size.height; 
    CGFloat scale = [[UIScreen mainScreen] scale]; 

    return (([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) && ((height * scale) >= 1136)); 
} 
3

Para aquellos que la pantalla sigue devolviendo 480 en lugar de 568, es necesario agregar un nuevo imágenes de inicio con el nuevo tamaño de la ficha resumen de configuración de la aplicación.

14
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    CGSize result = [[UIScreen mainScreen] bounds].size; 
    if(result.height == 480) 
    { 
     // iPhone Classic 
    } 
    if(result.height == 568) 
    { 
     // iPhone 5 
    } 
} 

see this link for different type of checking

Cuestiones relacionadas