2017-04-27 2 views
1

J'ai 5 éléments dans ma vue de la pile horizontale. À un moment donné, je cache des éléments aux index 1 et 2. J'ai un espacement de 1pt et il semble que lorsque les éléments 1 et 2 sont cachés, l'espacement entre les éléments 0 et 3 est la somme de l'espacement entre les éléments 0 et 1 et 2, et 2 et 3. Mes propriétés de la vue de la pile sont:UIStackView semble empiler l'espacement même lorsque les sous-vues sont cachées

stackView.axis = .horizontal 
stackView.distribution = .fillEqually 
stackView.spacing = 1pt 

Ma question est: Comment puis-je retirer la somme de ces écarts. Il ne devrait pas se comporter comme ça à mon avis. Alors, je manque quelque chose?

+1

Vous devez probablement * Supprimer * les vues de la pile - les masquer ne supprimera pas l'espacement. – DonMag

+1

Je pense que cela va à l'encontre du but de la propriété isHidden liée aux sous-vues arrangées d'une stackview. – Plot

+1

D'après les documents d'Apple: * "Apparaît pour supprimer la première vue organisée de la pile.La vue est toujours à l'intérieur de la pile, elle n'est plus visible et ne contribue plus à la mise en page." ** ne contribue plus à la mise en page, mais comme il est toujours "là", les valeurs ** d'espacement ** sont toujours utilisées. (Note: je ne travaille pas pour Apple - juste mon interprétation) – DonMag

Répondre

0

J'ai rencontré le même problème, ou alors je pensais. La cause du problème dans mon cas était le fait que je dissimulais à tort l'enfant unique de la vue au lieu de la vue (enfant qui était auparavant le descendant direct de la vue de la pile), donc la vue ne semblait pas être rendue c'était. Changer pour masquer la vue actuelle a fait disparaître le problème. En bref, j'avais un UILabel qui a été ajouté au UIStackView que je cachais/découvrais. Plus tard, j'ai incorporé l'étiquette dans une vue et j'ai manqué de changer la sortie que je cachais/dissimulais, donc j'ai continué à jouer avec l'étiquette, rendant son parent encore dans la vue de la pile (avec la hauteur zéro).

+0

Je ne suis pas sûr de comprendre. Que signifie "enfant unique de la vue"? – Plot

+0

@Plot J'ai mis à jour la réponse, laissez-moi savoir si cela a du sens maintenant. – Cristik