Le context:
Donc, par la question à scope de main – j'ai remarqué quelques choses intéressantes (mauvaises) qui se produisent.
Premier problème: Lors du chargement de la table, les lignes et les labels sont dynamicment redimensionnées correctement! Génial! Cependant, lorsque je défile vers le bas et que je défile vers le haut, les hauteurs d'label sont incorrectes (par exemple) la première rangée était correcte au chargement. Ensuite, lorsque je défilerai vers le bas et remonterai pour le voir à nouveau, il sera tronqué. Plus précisément, la taille de la ligne sera correcte mais la hauteur de l'label changera et sera tronquée à 2 lignes seulement. Je me request si c'est parce que j'ai fait le storyboard et le encoding pour personnaliser la cellule. Quelqu'un a déjà vu ça?
Deuxième problème: lorsque je défile vers le bas, alors que les lignes sont correctement dimensionnées (grandes), les labels sont courtes (tronquées). Je me request si c'est un peu inverse de la «réponse potentielle» ci-dessus.
Les trois problèmes sont symptomatiques du return de la mauvaise hauteur dans heightForRowAtIndexPath. Dans mes classs de model de données, j'ai une méthode calculateHeight que j'appelle heightForRowAtIndexPath. Le model met également en cache la réponse afin qu'il n'ait pas à la recalculer après le premier appel. La class de cellule utilise la hauteur calculée du model pour mettre en forme ses sous-vues.
"RÉPONDU" en supprimant la cellule prototype du storyboard et en les intégrant dans le code, le problème a disparu. Les fonctionnements fondamentaux ne sont toujours pas compris (c'est-à-dire les interactions entre le storyboard et le code lorsque les cellules sont placées en queue et regardées de nouveau)