J'ai un UIStackView
à l'intérieur de contentView
. En fonction de l'interaction de l'utilisateur, j'ajoute/retire des éléments dans le UIStackView
. Après avoir modifié les éléments dans UIStackView
, je m'attends à ce que le cell
mette à jour sa hauteur en conséquence. Mais, il ne met pas à jour sa hauteur à moins que j'appelle tableView.reloadData()
. Mais appeler reloadData()
dans cellForRowAtIndexPath
/willDisplayCell
devient récursif.UITableViewCell ne met pas à jour la hauteur après l'ajout d'une vue à UIStackView
Quelle est la bonne façon d'ajuster la hauteur cell
au moment de l'exécution en fonction des éléments de UIStackView
?
J'utilise UITableViewAutomaticDimension
Mise à jour du problème:
Here est un simple prototype de ce que je suis en train de faire.
Mon problème actuel est dequeuing la cellule.
Dans le prototype, j'ai 2 cellules réutilisables et 3 rangées. Pour les lignes 0 et 2, je supprime la file d'attente cellA
et pour la ligne 1, je désqueue cellB
. Voici l'aperçu de la condition que j'utilise.
if indexPath.row == 0 {
// dequeue cellA with 2 items in stackView
}
if indexPath.row == 1 {
// dequeue cellB with 25 items in stackView
}
if indexPath.row == 2 {
// dequeue cellA with 8 items in stackView
}
Mais la sortie est, ligne 0 contient 2 objets dans stackView
- prévu ligne 1 contient des 25 articles en stackView
- attendu ligne 2 contient 2 objets dans stackView
- inattendue, la rangée 0 est dequeued
J'ai également essayé de supprimer toutes les sous-vues organisées de stackView
en cellForRowAtIndexPath
. Mais, ce faisant, scintille l'interface utilisateur lors du défilement. Comment puis-je obtenir la sortie désirée?
avez-vous appliquer de premier plan, Trailing, Haut, Bas pour des contraintes ContentView pour StackView? – KKRocks
Oui .. S'il vous plaît vérifier la source ci-joint – iOS