web-dev-qa-db-fra.com

Bouton de redimensionnement dans une vue de pile

J'ai donc récemment étudié le développement Swift/iOS et j'ai un peu de mal avec le dimensionnement des boutons dans une vue de pile, j'ai la disposition suivante:

enter image description here

Il y a deux TextFields et un bouton dans un StackView vertical, le StackView est centré horizontalement et verticalement (avec un peu d'espacement). C'est des voies de largeur ancrées à la marge gauche et droite.

Je voulais réduire la taille du bouton, c'est donc environ 80% de la largeur du StackView.

Ce que j'ai essayé:

  • L'ajout d'une contrainte à la largeur du bouton entraîne des conflits avec StackView.
  • Ajouter un sous StackView puis essayer de définir sa contrainte d'ancrage gauche/droite à 20 en pensant que cela lui donnerait un peu de marge. Encore une fois, cela provoque des conflits avec la vue de pile externe.

Je fais tout cela dans la vue du storyboard plutôt que dans le code car j'essayais de connaître l'interface.

J'ai eu une bonne chasse et je n'arrive pas à trouver de réponses qui s'appliquent, excuses si cela semble basique, mais j'ai pensé que cela pourrait être bénéfique au cas où quelqu'un d'autre nouveau sur Xcode/Swift tomberait sur cela.

10
Mrk Fldig

Essaye ça..

  1. Supprimez les contraintes de début et de fin du bouton.
  2. Ajoutez une contrainte horizontale dans le conteneur au bouton.
  3. Ajouter une contrainte Largeur égale du bouton avec super vue (qui devrait être la vue de la pile je suppose). Comme ceci .. Appuyez sur control + faites glisser le pointeur du bouton StackView puis sélectionnez Equal widths dans le petit menu contextuel.

  4. Modifiez la contrainte Égalité et définissez Multiplicateur sur 0.8.

enter image description hereenter image description here

7
Bilal

Pour ceux qui essaient de redimensionner la hauteur d'une vue à l'intérieur d'une stackView comme dans l'exemple suivant:

enter image description here

Tout d'abord, définissez les contraintes pour StackView (largeur/hauteur, x, y), puis définissez les propriétés StackView comme suit:

enter image description here

Sélectionnez ensuite la vue que vous souhaitez redimensionner. C'est à dire. le vert, et ajoutez ces contraintes:

enter image description here

Ensuite, ajoutez simplement plus de contraintes aux autres vues/boutons/étiquettes. Dans cet exemple, voici les contraintes pour les vues bleue et orange:

Bleu: Constraints of the blue view

Et,

Orange:

Constraints of the orange view

J'espère que cela aide.

5
MLBDG

Maintenez le bouton Contrôle et cliquez et faites glisser le bouton que vous souhaitez redimensionner sur le même bouton et sélectionnez Largeur et Hauteur afin de sélectionner Ajouter des contraintes. Cela vous donnera une taille de bouton d'image, vous pouvez donc changer cela dans l'inspecteur. N'oubliez pas de changer la vue en Échelle à remplir. C'est résolu pour moi.

1
Fabio Almeida