web-dev-qa-db-fra.com

Comment puis-je avoir plusieurs largeurs et hauteurs de sous-vues dans un UIStackView

Disons par exemple que je veux ajouter 3 boutons à une vue de pile.

Button1 est 200 * 200 (1)

Button2 est 150 * 150 (0,75)

Button3 est 100 * 100 (0,5)

Comment puis-je accomplir cela dans le constructeur d'interface?

24
dubbeat

Vous pouvez le faire dans le storyboard en utilisant stackview

  1. Ajoutez une vue de pile avec Alignment Center et Distribution Fill .
  2. Les contraintes sur stackview sont centrées horizontalement et verticalement.
  3. Ajoutez maintenant trois boutons.
  4. Les contraintes sur le bouton 1 sont hauteur et largeur = 200
  5. Les contraintes sur le bouton 2 sont hauteur et largeur = 150
  6. Les contraintes sur le bouton 3 sont hauteur et largeur = 100

La configuration est illustrée sur la figure:

enter image description here

Vous rencontrez des conflits en raison de la propriété d'alignement qu'elle remplit dans votre cas. faire est au centre et c'est fait.

Nous pouvons également ajouter un espacement entre les boutons. Si nous définissons Distribution Equal Spacing et ajoutons une contrainte de hauteur à stackview avec une hauteur supérieure à la hauteur des boutons.

Il s'agit de la vue verticale de la pile. Vous pouvez tester la même chose avec stackview horizontale.

J'espère que cela fonctionnera pour vous.

45
Irfan

Pour ceux qui recherchent une solution pour UIView, La voici,

UIStackView garantit que ses sous-vues arrangées maintiennent le même proportion les uns aux autres que votre disposition grandit et se rétrécit . Cependant, contrairement aux autres options de distribution, les vues proportionnelles doivent avoir un taille de contenu intrinsèque .

0
Yash Bedi