2010-08-27 11 views
4

J'ai une vue de table avec une section. Je tire les données d'Internet en petits morceaux de manière asynchrone en arrière-plan. Le problème que j'ai, c'est que je ne sais pas combien de disques il y aura au total. Lorsque le service Web arrête de renvoyer des données, je sais que je les ai toutes, dans certains cas, les lignes peuvent être infinies.Section UITableview sans fin

La méthode:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

est naturellement appelé une fois au début de la charge de la vue, à ce stade, je ne sais pas comment ma grande section va être. Des idées sur la meilleure façon d'aborder ce problème? Puis-je définir la taille de section n'importe où après que cette méthode a été appelée?

Répondre

8

Vous pouvez faire le reload tableview ses données, appelez

[tableView reloadData]; 

... et il demandera la source de données sur le nombre de lignes, etc à nouveau.

+0

Est-ce que cela va recharger la vue, en recommençant le défilement en haut? – Magpie

+0

Juste essayé, il semble que ce ne soit pas si cela pourrait fonctionner. Merci. – Magpie

0

Vous dites que les données sont tirées en morceaux - ne mettez donc à jour que votre table en morceaux.

Chaque fois qu'un fragment est téléchargé, rechargez la table. De cette façon, vous savez combien de lignes il y a après que chaque morceau est fini.

Exemple:

  1. charges de l'application (pas de données)
  2. Chunk téléchargements
    • Mettre les résultats dans un tableau
    • 6 lignes de matrice, retournez [array count] en nombre de lignes dans la méthode de section
    • reload table
  3. Répétez l'étape 2 jusqu'à ce que vous ayez terminé.

Recharger les données ne réinitialise pas la position de défilement.

Questions connexes