2010-08-22 5 views
0

Pendant un certain temps, je suis confronté à un problème un peu stupide. J'espère que quelqu'un peut me donner un coup de main.UITableView est en train de redessiner seulement certaines cellules personnalisées

UITableView est en cours d'implémentation. UITableViewCell est dessiné en .xib et connecté à une propriété textEditCell.

dans le programme principal il y a un code simple:

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

return textEditCell; 

} 

Cependant, lorsque la vue est tirée, que certaines cellules (après la vue est Started - dernière cellule) est tirée. Si la vue est déplacée au-delà de l'extrémité supérieure de l'écran, la cellule supérieure est dessinée, la cellule inférieure est supprimée; lorsque vous faites glisser vers le bas, le comportement est opposé.

Étant donné l'exemple in Apple cookbook? c'est Listing 5-7. Qu'est-ce que je fais mal?

Appréciez votre aide.

Répondre

0

Fondamentalement, vous créez une seule instance d'une cellule et essayez de l'assigner à plusieurs lignes. Dans le livre de recettes Apple, vous disposez d'un nombre fixe de cellules personnalisées, appelées cell0, cell1 instanciées séparément dans le générateur.

Vous devez créer un autre fichier nib pour créer vos cellules. Rappelez-vous aussi de réutiliser des cellules - sinon vous aurez certainement des problèmes de mémoire.

+0

Estarriol, merci pour la réponse. Créer une autre plume semble être le seul moyen; bien que cela ne semble pas logique - pourquoi ne puis-je les avoir toutes en une seule plume? Je ne dis pas que la plume est chargée pour chaque cellule - c'est une opération redondante, n'est-ce pas? Une autre question est: où est une nouvelle instance de la cellule réutilisée créée dans, par exemple, http://stackoverflow.com/questions/202471/is-it-possible-to-design-nscell-subclasses-in-interface -constructeur ? Ou la plume nouvellement rechargée donne un nouvel objet? – user962409

1

Ce qui est décrit dans le listing 5-7 ne fonctionne que si vous avez seulement une cellule de ce genre dans votre table. Si vous avez besoin de nombreuses copies de cette même cellule, vous devez utiliser la technique décrite dans Listing 5-5.

Questions connexes