2017-04-05 2 views
1

Je rencontre un problème lors de la conception de mon ViewController qui contient un certain Label et un ImageView. Je les ai incorporés dans un StackView. Mon objectif est de placer un StackView dans un ScrollView afin que mon contenu sera scrollable si le contenu est plus long que la hauteur de l'écranUIStoryBoard Auto Layout intégrer UIStackView à l'intérieur de UIScrollView

Donc, fondamentalement, ce que je l'ai fait est

1 - Placer un UIScrollView dans une scène. Épinglez la vue de défilement à sa vue d'ensemble sans marges.

2 - Placez un UIStackView dans la vue déroulante. Épinglez tous les côtés de la vue de la pile dans la vue déroulante sans marge (oui, cela est contre-intuitif).

3 - Défilement vertical: Ajouter une contrainte de largeur égale entre la vue de défilement et la vue de la pile

Voici mon mise en storyboard

enter image description here

Mais je reçois ce contraintes d'avertissement rouge . Quelqu'un sait comment réparer ceci? Maythanks

enter image description here

Répondre

2

Essayez exemple donné à ce lien, il utilise les étapes suivantes

  1. Créer un UIScrollView, et définir ses contraintes.
  2. Ajouter un UIStackView aux UIScrollView
  3. Définissez les contraintes: en tête, suivi, Haut & Bas doit être égale à ceux de UIScrollView
  4. Mettre en place une contrainte égale de largeur entre les UIStackView et UIScrollView.
  5. Set Axe = vertical, alignement = remplissage, distribution = espacement égal, et espacement = 0 sur les UIStackView

    https://github.com/ar-juan/uistackview-in-uiscrollview

+0

merci, je vous donne un plus en détail? Comment pouvons-nous ajouter une vue intérieure et quelles contraintes devrions-nous donner? –

+0

@ LêKhánhVinh J'ai édité la réponse s'il vous plaît jeter un oeil. –

+0

Merci beaucoup. Ça marche maintenant. L'astuce consiste à définir l'attribut StackView. peut demander quelle est la distribution = Espacement égal différent de l'autre option comme remplir, remplir à égalité, remplir proportionnellement et égal Centrage –