2010-06-04 5 views

Répondre

17

La vue totale de la table est rechargée, il appelle cellForRowAtIndexPath pour obtenir les cellules pour toutes vos lignes et sections ... Ce faisant, il appelle aussi méthode NumberOfSections de tableView source de données et numberOfRows méthode de source de données tableview etc etc

+0

Il est censé appeler cellForRowAtIndexPath. Parfois, ce n'est pas du tout. –

+1

@JimThio J'ai ce problème exact, savez-vous une solution pourquoi mon cellForRowAtIndexPath n'est pas appelé après que je recharge des données? – vinylDeveloper

+0

Avez-vous trouvé une réponse à la raison pour laquelle cellForRowAtIndexPath n'est pas appelé en envoyant tableView le message reloadData? – Beanno1116

1

De plus, pour référence ultérieure, cette information est facilement disponible dans la documentation here. Copier/coller de la documentation d'Apple:

Appelez cette méthode pour recharger toutes les données utilisées pour construire la table, y compris les cellules, les en-têtes de section et les pieds de page, les tableaux d'index, etc. Pour plus d'efficacité, la vue de table réaffiche uniquement les lignes visibles. Il ajuste les décalages si la table se rétrécit à la suite du rechargement. Le délégué ou la source de données de la vue table appelle cette méthode lorsqu'il souhaite que la vue de table recharge complètement ses données. Il ne doit pas être appelé dans les méthodes qui insèrent ou suppriment des lignes, en particulier dans un bloc d'animation implémenté avec des appels à beginUpdates et endUpdates

0

Pour la réponse acceptée est très bonne. Mais je veux mentionner toutes les cellules visibles seront recréées. Habituellement ce n'est pas un gros problème. Mais si votre propriété stockée tableViewCell contient des données, elles peuvent être perdues. Par exemple, cliquez sur un bouton d'une tableViewCell pour demander des données à partir d'Internet et enregistrer les données récupérées dans une propriété stockée. Si vous reloadData, les données récupérées seront perdues. Bien sûr, ce n'est pas un vrai faire une demande de tableViewCell. Mais je veux juste expliquer cette situation.

Questions connexes