Lorsque la cellule devient visible pour la première fois, la méthode init est utilisée. Lorsque la cellule devient visible pour la première fois, elle sera supprimée de la mémoire de la vue de la table.UITableView supprime toutes les cellules réutilisables
UITableViewCell *cell = [searchTable dequeueReusableCellWithIdentifier:identifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
}
return cell;
Disons que je l'ai fait défiler toute la table et maintenant une cellule peut être dequeued parce qu'ils ont tous déjà été initialisé.
Mes cellules actuelles ont des identifiants de 0 à 199. Je rafraîchis ma vue de table et maintenant j'ai de nouvelles informations pour les cellules. J'utilise des identificateurs de méthode reloadData
et l'utilisation de 200 à 399 pour les nouvelles cellules en ajoutant +200
aux cellules identifiant:
NSInteger index = indexPath.row + 200;
NSString *CellIdentifier = [NSString stringWithFormat:@"%d",index];
Maintenant, je défiler toute la table et voir les cellules de 200 à 399.
laisse imaginer que je change index
Retour à:
NSInteger index = indexPath.row;
maintenant une question: vieilles cellules avec des identificateurs de 0 à 199 peuvent encore être dequeued, ne peuvent-ils?
Si la réponse est They CAN be dequeued
J'ai une autre question:
est-il un moyen d'éliminer les cellules avec des identifiants de 0 à 199 de la table mémoire de vue quand je commence à utiliser des cellules avec des identifiants de 200-399?
Pouvez-vous expliquer comment obtenez-vous 200 nouvelles cellules? Veuillez passer par ce lien, https://discussions.apple.com/thread/2760904?start=0&tstart=0. À la fois, vous n'aurez que les cellules visibles dans votre mémoire si vous utilisez dequeueReusableCellWithIdentifier. Les autres cellules sont automatiquement supprimées de la mémoire. Lorsque vous actualisez, il va juste réutiliser les mêmes cellules et seules les données à l'intérieur des cellules vont changer. Il ne va jamais aller comme 200, 400 et tout. Il sera idéalement limité au nombre de cellules visibles ce qui pourrait être dit 10. – iDev
J'ai corrigé une erreur dans cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleSubtitle reuseIdentifier: Cellidentifier]; S'il vous plaît vérifier la réponse. – iDev