103 votes

Le report automatique est ignoré dans Custom UITableViewCell

Malgré la présence de définir des contraintes pour tous les éléments, y compris la verticale ceux nécessaires pour la cellule pour calculer sa hauteur, l'auto-mise en page semble être ignoré: toutes les cellules sont pressés.

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

enter image description here

Dans le VC qui détient le tableView, voici le code dans le viewDidLoad:

tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension

Commentant la deuxième ligne donne cellules avec une hauteur de 120.0 mais la mise en page automatique est ignoré.

Merci


Mise à jour

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

  • Espace à gauche pour superview
  • En haut de l'espace de superview
  • Fixe la largeur et la hauteur (100 et 100)
  • Fond de l'espace du conteneur de la marge pour s'assurer que la cellule a tous des contraintes verticales à déterminer sa hauteur

Et avec cette interface simplifiée, mise en page automatique est toujours pas pris en compte, ce qui laisse m'que le problème ne vient pas de mal de définir des contraintes.

Dans la Taille de l'Inspecteur, la hauteur de la ligne est réglé sur 120 et Personnalisé est cochée. La cellule a le droit de classe personnalisée, la cellule de réutilisation de l'identifiant est correct.


Mise à jour: solution trouvée

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

281voto

Kqtr Points 1953

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.

juste pour über clair

-3voto

Jaafar Barek Points 362

Je pense que le problème est que vous implémentez:

 func tableView(_ tableView: UITableView, heightForRowAt indexPath: 
IndexPath) -> CGFloat {

 return x
}
 

Vous devez supprimer cette fonction afin que la vue de table calcule sa hauteur automatique pour les cellules.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X