Cacher une image et ses contraintes

#1

Salut à tous,

Depuis un moment dans mes développements je cherche le bon moyen de pouvoir cacher une image et ses contraintes.
Là, j’ai quelque chose du genre : contrainte safe area leading | image | horizontal spacing | image | horizontal spacing | image | contrainte safe area trailing

Et si je fais un image.isHidden = true sur celle du milieu par exemple, l’image de droite ne vient pas se décaler automatiquement vers la gauche.
Je suis obligé de lier les contraintes et de faire des constraint.constant = 0.0 mais je pense que c’est assez crade et surtout ça génère souvent des conflits de contraintes dans tous les sens.

Est-ce que vous avez une bonne technique pour gérer ça ?

Merci !

#2

Salut @schtipoun,

Je vois deux solutions possible qui peuvent être meilleurs que ce que tu fait.

La première que je pense la meilleur, c’est avec une collectionView.
Et la deuxième avec une stackView.

Avec la collectionView tu arriveras normalement a faire ce que tu veux et garder la taille de tes imageView comme tu le désires par contre, si tu veux que tes images prennent la totalité de l’espace horizontal une stackView peut faire l’affaire.

2 Likes
#3

Ok, merci Anthony.
J’utilise déjà une collectionView mais pour autre chose, je vais voir si je peux en faire cet usage effectivement.

Bon week-end !

#4

C’est tout bon !
J’ai mis une collectionView pour afficher tout ça et ça fonctionne.

Petite astuce : si vous utilisez une stackView à l’intérieur d’une cell de collectionView, il faut l’intégrer dans une UIView pour qu’elle soit affichée correctement.

Petit regret : on ne peut pas designer une collectionView directement dans Interface Builder contrairement à une tableView par exemple. On est obligé de la designer “à vide” et de tout lier à l’intérieur du code. Mais bon, je m’en suis sorti !