Disposition proportionnelle pour les iPhones (de 5 à 6 Plus) avec des classs de taille

J'ai traversé un certain nombre de tutoriels sur les classs de taille mais je n'arrive toujours pas à comprendre une chose.

L'iPhone 5, l'iPhone 6 et l'iPhone 6 Plus ont absolument les mêmes proportions, donc je veux qu'ils utilisent la même disposition de contenu. En disant la même chose, je veux dire proportionnelle à la largeur et la hauteur de l'écran.

Mais! Je ne peux pas find un moyen de le rendre proportionnel pour tous les iPhones!

Il y a juste quelques contraintes qui supportent vraiment les proportions: "Ratio d'aspect", "même largeur" ​​+ "multiplicateur", "même hauteur" + "multiplicateur"

Contraintes, telles que Leading Edges, Horizontal Center In Container, toutes les contraintes Pin fonctionnent avec des valeurs absolues en points logiques, et les écrans de tous les iPhones ont des tailles différentes en points logiques; ainsi je ne peux pas get la même image sur tous les iPhones.

Mettre à jour

J'ajoute une image pour expliquer ce que je veux réaliser:

entrez la description de l'image ici

Si vous voulez faire une si mauvaise utilisation d'un plus grand écran, vous pourriez simplement ne pas inclure le file de lancement ou lancer des images pour les appareils 4.7 "et 5.5" et ils vont simplement utiliser une mise à l'échelle de 4 ".

Mais s'il vous plait, ne faites rien de tout ça. Les écrans peuvent avoir le même format, mais ils ne sont pas de la même taille et les traiter de cette manière peut créer une mauvaise expérience user.

J'ai eu un problème similaire et l'ai résolu en testant l'image par rapport à la hauteur de l'écran (ou la largeur), par exemple:

 //iphone 5 if UIScreen.main.bounds.size.height == 568.0 { // your code here } 

les hauteurs d'écran d'iphone sont comme suit:

iphone 5 = 568,0

iPhone 6 / 6s / 7 = 667,0

iphone 6/7 plus = 736.0

Vérifiez ce projet d'échantillon que j'ai fait pour vous.

Supposons que vous avez un button, puis suivez les étapes que j'ai mentionnées ci-dessous pour faire la hauteur proportionnelle, la largeur et la position du button à la vue parente.

  1. Donnez votre ratio d'aspect de button.
  2. Donne une largeur égale à la largeur de la vue parente.
  3. Ajouter Constraint Center Horizontalement dans le conteneur et Centrer verticalement dans le conteneur.
  4. Sélectionnez votre button, puis allez à l'inspecteur de taille et réglez le multiplicateur pour la largeur (comme 0,3 ou 0,4 etc).
  5. Réglez ensuite le multiplicateur pour "aligner le centre X sur .." (si vous voulez que votre button soit à gauche du centre, placez le multiplicateur en dessous de 1 comme 0.8, 0.7, 0.5 etc. Et si vous voulez que votre button soit à droite du centre puis définissez la valeur du multiplicateur plus grande que 1 comme 1.2 etc).
  6. Réglez la valeur du multiplicateur pour "Aligner le centre y sur .." comme dans Etape

Tout est fait .. Il suffit de courir et vérifier.

J'espère que ceci vous aidera.