2010-09-27 20 views
3

J'ai sous-classé UITableViewCell pour créer une cellule personnalisée pour un tableauView. J'ajoute du texte et des images au contenu de la cellule.iOS - comment gérer les changements d'orientation dans les cellules de tableau personnalisées

Tout semble très bien en mode paysage (iPad), mais pas tellement quand je tourne en portrait. Où est le meilleur endroit pour gérer les changements d'orientation afin que toutes les cellules du tableau puissent repositionner le contenu dans son contenuView? Est-ce que je mets ce code dans TableViewController ou dans la sous-classe UITableViewCell?

Répondre

3

Vous pouvez jouer avec autoresizingMask des vues de votre cellule pour voir que peut-être le résultat approprié peut être atteint automatiquement. Si cela ne fonctionne pas, dans votre willAnimateRotationToInterfaceOrientation de tableView vous pouvez faire:

NSArray* visibleCells = [tableView indexPathsForVisibleRows]; 
[self.tableView reloadRowsAtIndexPaths:visibleCells withRowAnimation:NO]; 
+0

le deuxième paramètre de '-reloadRowsAtIndexPaths: withRowAnimation:' est pas un 'BOOL'; c'est un type 'UITableViewRowAnimation' – user102008

+1

ok, je sais que c'est un vieux sujet, mais ... vous êtes autorisé à passer un' BOOL' à cette méthode; Apple a fait en sorte qu'un 'NON 'ne vous donne aucune animation, et un' OUI 'vous donnera une animation automatique (peu importe ce que cela signifie). – aopsfan

+0

Cette réponse est toujours aussi utile. J'ai essayé d'y parvenir en utilisant 'viewWillLayoutSubviews' et en utilisant le code d'orientation, mais c'était trop de mémoire. C'est bien. –