2017-05-18 1 views
0

J'ai 3 étiquettes cachées, après une vérification dans la base de données, j'ai défini label.isHidden = false uniquement si la valeur de cette étiquette existe.Espace d'interlignage automatique entre deux éléments dans Swift

Ceci est la situation dans laquelle toutes les étiquettes ont juste valeur

Je me sers Storyboard avec pour AutoLayout déterminé la position de ces étiquettes mais je dois tirer des étiquettes à gauche si l'un de ceux-ci reste caché en gardant la espace avec d'autres étiquettes.

Voici comment maintenant à la recherche enter image description here

Est-il possible de le faire par programme? Si oui, comment?

Répondre

1

Utilisez StackView pour cela. Vous ne devez pas faire la configuration automatique fatiguant si vous utilisez StackView.Rather, vous trouverez ce que vous voulez

enter image description here enter image description here

Après avoir cliqué sur cacher.

enter image description here

Après avoir cliqué sur Afficher

enter image description here

+0

Est-il possible d'utiliser un StackView dans un CollectionViewCell? – GaTz

+0

Bien sûr que c'est possible. –

+0

Mais comment reproduire les mêmes positions d'étiquettes? – GaTz

1

Une façon d'y parvenir serait d'aligner chaque étiquette par rapport à l'étiquette adjacente (label1.trailing à label2.leading par exemple).

Ensuite, au lieu de définir n'importe quelle étiquette sur caché, vous pouvez définir la contrainte de largeur sur 0 et appeler layoutIfNeeded dans la présentation, toutes les autres étiquettes seront ensuite mises en page en conséquence.

0

Utilisez StackView pour gérer cet espace au lieu d'utiliser isHidden pour masquer l'étiquette.

Vous pouvez également réaliser que par AutoLayout, utilisez votreConstraint.constant = 0 ou la propriété prioritaire des contraintes.