2012-09-13 4 views
6

Avec l'annonce de l'iPhone 5 et de nouveaux iPods aujourd'hui, je commence à travailler sur l'optimisation de mon application pour profiter du nouvel espace d'écran supplémentaire. Je suis déjà arrivé au point où mon application n'est plus "letterboxed". Je sais que c'est tôt, mais est-ce que quelqu'un sait comment je pourrais distinguer entre les nouveaux appareils plus grands et les anciens?iOS 6 - Distinction entre l'iPhone 5 et d'autres appareils?

Idéalement, ce serait quelque chose comme ceci:

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 
} 

Merci! J'espère que tout le monde profite aussi de ce qu'Apple a annoncé aujourd'hui!

+0

Avec iOS6 encore sous NDA, des questions comme celle-ci ne peut pas obtenir une réponse dans les lieux publics. Je suggère de visiter les Forums des développeurs Apple. –

+0

Oh, d'accord. Puisque le MJ était sorti, je ne savais pas si ça continuait, mais merci. Je vais aller sur les forums de développement à partir de maintenant avec des trucs comme ça. – mhbdr

+0

@SlyRaskal - Ce n'est pas spécifique à iOS 6.0, donc c'est une question parfaitement viable ici. –

Répondre

6

Sur le dessus de ma tête, vous pouvez utiliser les informations de limites pour l'UIScreen [UIScreen mainScreen].bounds et vérifier la hauteur ou le meilleur ratio de l'écran.

+0

Je vais essayer! Merci de répondre! :) – 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

Pour ceux que l'écran revient toujours au lieu de 480 568, vous devez ajouter de nouvelles images de lancement avec la nouvelle taille dans l'onglet Résumé des paramètres d'application.

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

Questions connexes