web-dev-qa-db-fra.com

Le report automatique est ignoré dans Custom UITableViewCell

Bien que des contraintes aient été définies pour tous les éléments, y compris les contraintes verticales nécessaires au calcul de la hauteur de la cellule, la mise en page automatique semble être ignorée: toutes les cellules sont comprimées.

Voici une capture d'écran du résultat et des contraintes du storyboard. enter image description here

enter image description here

Dans le VC qui contient la tableView, voici le code dans viewDidLoad:

tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension

Si vous commentez la deuxième ligne, les cellules ont une hauteur de 120,0 mais la mise en évidence automatique est également ignorée.

Merci


Mise à jour

Pour simplifier l'interface, j'ai laissé une seule étiquette avec comme contraintes:

  • Espace de premier plan à superview
  • Top espace à superview
  • Largeur et hauteur fixes (100 et 100)
  • Espace inférieur à la marge du conteneur pour s'assurer que la cellule a toutes les contraintes verticales pour déterminer sa hauteur

Et avec cette interface simplifiée, la mise en page automatique n’est toujours pas prise en compte, ce qui me laisse penser que le problème ne venait pas de contraintes mal définies.

Dans l'inspecteur de taille, la hauteur de la ligne est définie sur 120 et l'option Personnalisé est cochée. La cellule a la bonne classe personnalisée, l'identifiant de réutilisation de cellule est correct.


Mise à jour: solution trouvée

C'était une simple erreur, voir ma réponse ci-dessous.

69
Kqtr

La mise en page automatique a été ignorée car la classe de cellules personnalisée dans IB a été attribuée à la cellule prototype ET à la vue UIV de la cellule.

Remettre UIView en classe UIView a résolu le problème.

just to be über clear

183
Kqtr