Alors que les réponses sur cette page traitant de l'ajout de contraintes de hauteur ou du retour manuel de rowHeights comme 44 dans heightForRowAtIndexPath font disparaître l'avertissement, elles sont superflues car il s'agit d'un bogue dans Xcode visible au moins dans la version 6.3.2 (6D2105).
Si vous définissez un point d'arrêt dans viewDidLoad, vous verrez que self.tableView.rowHeight = -1 (UITableViewAutomaticDimension) même si vous spécifiez une hauteur de ligne de 44 dans le storyboard. En effet, Apple suppose à tort que vous souhaitez des hauteurs de ligne dynamiques si vous laissez la hauteur de ligne à 44, car ils ne vous ont pas fourni d'indicateur pour spécifier votre préférence.
Voici quelques solutions possibles et leurs résultats:
Définissez la hauteur de ligne sur 43 ou 45 dans le storyboard (œuvres).
Renvoie manuellement une hauteur de 44 dans heightForRowAtIndexPath (fonctionne).
Ajoutez des contraintes de hauteur entre les éléments de UITableViewCell et son contentView (fonctionne).
Malheureusement, ces solutions vous obligent à modifier votre conception, à ajouter des contraintes inutiles ou à ajouter du code inutile pour contourner un bogue. J'ai essayé (ce que je pensais être) la solution la plus simple:
- Définissez la hauteur de chaque UITableViewCell sur 44 (personnalisé) dans le storyboard (échoue).
Je voulais vraiment une solution de storyboard pure à cela, alors j'ai finalement essayé:
- Ajoutez un attribut d'exécution défini par l'utilisateur à UITableView dans le storyboard et nommez UITableView avec une note sur la façon dont son rowHeight est défini afin que les futurs développeurs puissent le trouver: (fonctionne):

Ces bogues sont trop courants dans le développement iOS et obligent les développeurs à passer trop de temps à évaluer les ramifications de la façon dont leurs solutions affecteront la maintenabilité à long terme.
Étant donné que trouver une solution conceptuellement correcte qui est maintenable et ne semble pas obscurcie est si insaisissable, et en supposant qu'Apple corrigera le bogue et que 44 sera la hauteur de ligne par défaut dans un avenir prévisible, alors la contrainte ou définie par l'utilisateur Les solutions d'attributs d'exécution sont probablement les plus faciles à maintenir.