En utilisant XCode 4.5 et iOS 6, je développe une application avec une vue de tableau simple avec des cellules personnalisées. Je l'ai fait cent fois dans iOS 5 et versions antérieures, mais pour une raison quelconque, le nouveau système de mise en page automatique me pose beaucoup de problèmes.
J'ai configuré ma vue de table et ma cellule prototype dans IB, ajouté des sous-vues et les ai câblées en tant qu'IBOutlets, puis j'ai configuré mon délégué et ma source de données. Cependant, chaque fois que la première cellule est récupérée cellForRowAtIndexPath
, j'obtiens l'erreur suivante:
*** Échec d'assertion dans - [ShopCell layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776
*** Fin de l'application en raison d'une exception non interceptée «NSInternalInconsistencyException», raison: «Mise en page automatique toujours requise après l'exécution de -layoutSubviews. La mise en œuvre de -layoutSubviews par ShopCell doit appeler super. '
Je n'ai pas implémenté de méthode -layoutSubviews dans ma cellule sous-classée (ShopCell), et même lorsque j'essaie de le faire et d'ajouter le super appel car il suggère que j'obtiens toujours la même erreur. Si je supprime les sous-vues de la cellule dans IB et que je la change en UITableViewCell standard, tout fonctionne comme prévu, même si bien sûr je ne me retrouve pas de données dans mes cellules.
Je suis presque certain qu'il me manque quelque chose de simple, mais je ne trouve aucune documentation ou guide pour suggérer ce que j'ai mal fait. Toute aide serait appréciée.
Edit: J'ai juste essayé de le changer en UITableViewCell dans IB et de laisser toutes les sous-vues en place, toujours la même erreur.
lldb [[UIWindow keyWindow] _autoLayoutTrace]
dans la zone de débogage si la mise en page automatique est utilisée.