Création d'interface par le code et détection de la taille d'écran

S’il y a bien un bout de code que je copie-colle souvent de projet en projet, c’est celui qui me permet de détecter la taille de l’écran.

En effet, depuis la sortie de l’iPhone 5 dans la famille des devices Apple les développeurs doivent faire avec deux tailles différentes pour les iPhones. Sans compter que si l’on développe une application universelle (iPad + iPhone) on se rajoute une taille d’écran !

Bien sûr certain me diront qu’avec le storyboard et l’auto-layout on s’évite pas mal de soucis. Je répondrais que je suis entièrement d’accord lorsque l’on veut designer rapidement une application simple, mais personnellement j’ai eu beaucoup plus de problèmes avec que sans storyboard.

Un vrai geek moi ?

Du coup j’ai adopter la méthode « pure geek » : pas de storyboard, l’interface est codée à la main. Cette méthode est certes (très) longue à mettre en place mais elle m’évite tellement de problèmes par la suite que pour l’instant je suis prêt a le faire.

Pour ne pas perdre ce bout de code (et surtout m’éviter de le rechercher dans mes projets précédants) je le partage dans cet article. Qu’il serve a qui en aura besoin !

if([[UIDevice currentDevice]userInterfaceIdiom]UIUserInterfaceIdiomPhone){ 
    if([[UIScreen mainScreen] bounds].size.height 568){ 
        // code d'initialisation avec frame pour iPhone 5 
    } else { 
        // code d'initialisation avec frame pour iphone 4s et en dessous 
    }

    // code commun à toutes les versions d'iPhone}else{ // tous les codes concernant l'pad
}