Suis nouveau dans les contraintes de mise en page automatique dans Xcode. J'ai une vue du bas comme UITabBar
avec 6 UIButtons
. Sans contraintes, j'ai aligné ces boutons avec un espace de 5 sur chaque bouton et chaque bouton a 50 largeur. Maintenant, j'essaie de le faire en utilisant la mise en page automatique pour prendre en charge toutes les tailles d'écran.
Dans Storyboard contraint, je règle la même largeur pour 6 boutons et en fait 60 espace entre chaque boutons. Je mets le premier bouton 0 sur le premier espace et Je mets le dernier bouton 0 à la fin des contraintes.
Je veux le buttons with equal width and flexible spaces
entre les vues dans toutes les tailles de périphériques.
Quelqu'un peut-il m'aider? Chercher de l'aide. Merci d'avance.
Avec iOS 9 et Xcode 7, vous pouvez maintenant avoir le résultat attendu avec UIStackView
et seulement 3 ou 4 contraintes de disposition automatique.
L’étape suivante utilise Storyboard.
UIButton
s et 5 UIView
s. Alignez-les horizontalement. Donnez de la couleur à vos points de vue.Stack
. Tous vos boutons et vues colorées seront alignés dans une UIStackView
.Utilities
et sélectionnez l'élément Attributes Inspector
. Là, cliquez sur le bouton Distribution
et sélectionnez "Remplir équitablement".Pin
, cochez le bouton Height
, ajoutez la valeur requise et cliquez sur le bouton Add 1 Constraint
.Si vous souhaitez que la hauteur de chaque élément de votre vue pile corresponde à sa largeur, sélectionnez le premier bouton de votre vue pile, cliquez sur le bouton Pin
, sélectionnez Aspect Ratio
et cliquez sur le bouton Add 1 Constraint
.
Vous pouvez vérifier que votre contrainte de format d'image est correcte dans votre Document outline
(panneau de gauche) et, si vous en avez besoin, vous pouvez la modifier avec une contrainte différente dans le Attribute inspector
(panneau de droite).
pin
, assurez-vous que le bouton Constrain to margin
n'est pas sélectionné et définissez les contraintes de début, de fin et inférieure à zéro. Assurez-vous que la contrainte du bas est liée à la vue de votre contrôleur de vue. Ensuite, remplacez le bouton Update Frames
par "Toutes les images dans le conteneur". Vous pouvez maintenant cliquer sur le bouton Add 3 Constraints
.Votre vue de pile est maintenant définie.
Autre remarque:
Si vous n'avez pas besoin que la largeur de vos vues colorées corresponde à celle de vos boutons, vous pouvez créer une vue de pile avec uniquement UIButtons
et simplement ajouter un espacement à votre vue de pile dans le Attribute inspector
. Cependant, vous devrez trouver un moyen d'ajouter une couleur d'arrière-plan derrière votre vue de pile. Apple en parle dans UIKit Framework Reference :
UIStackView est une sous-classe d'UIView non génératrice de rendu. Ce ne est pas fournir une interface utilisateur propre. Au lieu de cela, il gère simplement le fichier position et la taille de ses vues disposées. En conséquence, certaines propriétés (comme backgroundColor) n’ont aucun effet sur la vue de pile.
J'ai construit un projet Xcode avec 4 vues de pile différentes:
UIButton
s pour sa hauteur,UIButton
"égale largeur et hauteur",Vous pouvez trouver ce projet sur ce GitHub repo .
iOS 9 a une nouvelle classe UIKit appelée UIStackView. C'est très utile pour empiler des vues horizontalement ou verticalement, comme vous le souhaitez. Vous devriez consulter ce tutoriel: Raywenderlich: Tutoriel UIStackView
Sélectionnez tous les boutons et dans le menu Pin de Xcode