2010-03-09 9 views
1

J'utilise deux vues de table (table principale et sous-table), une table dans la cellule de l'autre. J'ajoute Sub Table dans la vue du contenu de la cellule de la table principale. J'utilise également un identifiant de cellule différent pour les deux cellules de la table.Problème de déqueue de cellule lorsque la table se trouve dans la vue de contenu de cellule d'une autre table

Maintenant, question est: Lorsque - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

est appelée, première cellule temporelle de la table principale est générée et quand je défiler vers le haut/bas ils sont tous juste dequeued, il est donc prévu et le comportement standard et fonctionne bien. Mais, la cellule de Sub Table est créée/allouée à chaque fois. Il n'est pas retiré comme il se doit. Je suppose que cela se passe parce que Sub Table fait partie de la vue Contenu de la cellule de la table principale. Mais pas sûr et je ne sais pas comment le résoudre. Quelqu'un peut-il m'aider à trouver la solution?

Répondre

1

Vous avez exactement le même problème que vous l'avez décrit: L'objet UITableView de la sous-table est complètement désalloué et sa file d'attente de cellules est associée. Vous pouvez essayer de conserver les vues sous-table pour chaque cellule de la table principale séparément dans un tableau ou quelque chose, mais c'est moche et enclin à conserver le désordre. Les vues de table n'ont pas été conçues pour la façon dont vous les utilisez. Dans un projet nous avons fait face à la même conception, nous avons fini par dessiner les sous-tables comme des vues générales, avec des sous-vues simples dans un cycle pour les cellules de la sous-table. C'est à vous de décider si vous pouvez continuer comme vous avez commencé ou de changer l'implémentation pour une approche différente, mais si vous n'avez pas besoin de défiler et de réutiliser les cellules dans les cellules de la table principale, je vous recommande d'abandonner sous-table étant une approche UITableView complètement.

1

J'ai eu exactement le même problème. C'est parce que l'exemple tutoriel utilise deque, je l'ai juste changé pour que le pointeur se dirige vers la cellule au lieu de deque.

cellForRowAtIndexPath:indexPath 

J'ai travaillé pour moi.

Questions connexes