2017-03-17 4 views
1

Quelle est la meilleure approche pour masquer les éléments de l'interface utilisateur dans UITableView avec UITableViewAutomaticDimension?Masquage des éléments de l'interface utilisateur dans UITableViewCell et redimensionnement de la cellule en fonction de

J'ai plusieurs étiquettes, boutons, images dans une cellule. Pour une condition spécifique, je veux en cacher quelques-unes et je veux que la table soit redimensionnée en conséquence.

Veuillez me corriger s'il me manque quelque chose.

+0

Vous devrez définir leurs contraintes de hauteur à 0 dans le cas de 'UIImageView' et simplement définir le texte de' UILabel' sur une chaîne vide à condition que sa hauteur soit déduite de son contenu. Si vous avez explicitement défini les hauteurs, vous devrez prendre une sortie de la contrainte et la mettre à 0. – Rikh

+0

Il y a environ 25 éléments dans la cellule et certaines étiquettes sont de la ligne 0 qui peuvent être présentes ou non. Donc, écrire des contraintes de hauteur pour eux sera gênant. Veuillez suggérer une autre approche si possible. –

+0

Tant que les 'UILabel' sont vides, leur hauteur sera 0 et vous n'aurez aucun problème avec les dimensions automatiques, cependant leurs contraintes d'espacement vertical seront toujours actives. Vous pouvez programmer itérer tous les éléments d'une vue, puis parcourir les contraintes de chaque élément jusqu'à ce que vous trouviez la contrainte de hauteur et la mettre à 0, mais cela demandera beaucoup de traitement. En dehors de cela, je suis désolé, je n'ai aucune idée: D – Rikh

Répondre

1

Utilisez StackView. StackView le gérera, lorsque les éléments masqueront qu'ils se redimensionnent automatiquement.

utilisation StackView dans la cellule tableview

Click Here pour savoir comment utiliser StackView

Click Here For Example, Cela vous aidera à comprendre plus.

+0

Va certainement passer et vous le faire savoir. –

+1

bonne chance, je vous montre par exemple aussi pour la compréhension pâte. – Ujesh

+0

merci bro va certainement passer par là –

0

Si vous utilisez UITableViewAutomaticDimension, vous devez mettre à jour les contraintes par programmation.

par exemple si vous avez 2 étiquettes et 2 boutons, et si vous voulez masquer sur l'étiquette sur le clic d'un bouton. Vous devez ensuite gérer les contraintes de hauteur de cette étiquette pour gérer automatiquement la gestion des cellules.

+0

Merci pour l'aide @jatin Mais le problème est qu'il y a environ 25 éléments dans la cellule et que certaines étiquettes sont de la ligne 0 qui peuvent être présentes ou non. Donc, écrire des contraintes de hauteur pour eux sera gênant. Veuillez suggérer toute autre approche si possible. –

+1

Ensuite, vous devez aller avec stackview. mais le seul problème est le support de stackview est iOS 9 et dernière version iOS. –

+0

Mon projet supporte iOS 9+ donc pas de problème avec ça. Je vais essayer et vous le faire savoir. –