Mise en page automatique proportionnellement

J'ai déjà trouvé plusieurs questions et réponses sur ce sujet, mais je ne peux tout simplement pas get ce travail pour moi.

Mise à l'échelle

Le rectangle bleu est un UIView qui contient le button Test Label et Gear. Le rouge est un second UIView.

Ce que je voudrais faire est d'augmenter la taille de la barre bleue (qui est un UIView) pour les écrans de plus grande taille, ce qui se traduira par la mise à l'échelle du button Label et parameters, tandis que le Red UIView rétrécira UIView peut devenir plus grand. Donc, fondamentalement, la question est de savoir comment mettre proportionnellement à l'échelle les UIViews pour différentes tailles d'écran.

J'ai essayé d'utiliser des contraintes de format, des contraintes de hauteur (supérieures à / inférieures à) mais je n'arrive pas à get l'effet désiré.

Merci.

Essayez la hauteur et la largeur proportionnelles. Vous devez faire des contraintes pour des hauteurs égales et / ou des largeurs égales et ensuite vous double-click la contrainte et changez le multiplicateur par exemple 0.2 si vous souhaitez que le premier élément soit 20% du deuxième élément en largeur et 2.0 pour 200% ( signifie double) en largeur. pour le faire augmenter ou diminuer proportionnellement selon vos besoins entrez la description de l'image ici

Vous avez deux façons de le faire:

1. Contraintes proportionnelles

mais si vous définissez une hauteur proportionnelle pour une vue, cela signifie que la vue change pour chaque petite modification de la taille de l'écran. Par exemple, votre vue peut être un peu plus grande passant de 4 "à 4,7", mais cela ne veut pas dire que c'est une mauvaise idée.

Pour utiliser cette fonction, il suffit de vérifier la réponse par Asadullah Ali 🙂

2. Utilisez des classs de taille:

Si vous utilisez Xcode 6, vous pouvez utiliser les classs de taille et append des contraintes uniquement pour une taille d'écran; ce n'est pas difficile à utiliser, consultez la documentation Apple .

Pour cette fonctionnalité, vous devez adapter les classs de taille de votre Storyboard:

entrez la description de l'image ici

Après cela, vous pouvez configurer votre controller de vue comme vous voulez et append une règle juste pour l'une des classs:

entrez la description de l'image ici

vous pouvez dire à Xcode "ok, si la taille de l'écran est de 5,5 au less, utilisez cette règle".

N'oubliez pas que pour append une contrainte pour une class de taille spécifique, vous devez d'abord sélectionner la class de taille puis append normalement votre contrainte: quand une class de taille est sélectionnée (vous pouvez vérifier le contrôle des classs de taille) Xcode ajoute les contraintes juste pour cette class.

EDIT 1 : Si vous rencontrez des problèmes avec la mise à l' échelle de la police et similaire, vous pouvez également utiliser la fonction size-classs juste pour resize une taille de police dans une label par exemple; vous trouvez cette option en cliquant dessus après avoir activé la fonction de classs de taille:

Comment ajouter une taille de police pour une classe de taille


Je préfère vous dire tout ce que je sais sur votre problème, mais dans votre cas personnellement j'utiliserais la première solution : votre vue peut changer dynamicment quelle que soit la taille de l'écran.

Vous devez juste find le meilleur pourcentage proportionnel: vous pouvez définir environ 10%, donc le multiplicateur 0.1 avec le premier item votre vue bleue et pour le second item la vue rouge .