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

Cet article est libre d'accès pour tous grâce à ceux qui soutiennent notre blog indépendant.

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
}

Rejoins 250+ développeurs de notre liste de diffusion et sois reçois les articles directement dans ta boite mail.

S'inscrire à la newsletter

Aucun spam. Désabonnes-toi en un seul clic à tout moment.

Si vous avez des questions ou des remarques/conseils, n'hésitez pas à laisser un commentaire plus bas ! Je serais ravis de vous lire. Et si vous aimez l'article, n'oubliez pas de le partager avec vos amis.