2010-04-19 6 views
1

J'essaie d'actualiser un UITableView avec de nouvelles cellules toutes les 30 secondes. Mon tableau contient 30 éléments, et pour chaque nouvel élément que j'ajoute à mon tableau, je veux supprimer la dernière cellule de ma table. Comment puis-je faire cela?Rafraîchissement automatique Aide UITableView

Répondre

6

Pour actualiser toutes les 30 secondes, utilisez un NSTimer.

NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:30 
          target:self selector:@selector(refreshTable) 
         userInfo:nil repeats:YES]; 

Ajoutez ce nouvel élément dans votre -refreshTable. Assurez-vous que votre source de données et la table sont synchronisées.

-(void)refreshTable { 
    ... 
    // modify the data source. 
    [items removeLastObject]; 
    [items insertObject:newItem atIndex:0]; 

    // modify the table. 
    [tableView beginUpdates]; 
    [tableView insertRowsAtIndexPaths: 
     [NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] 
        withRowAnimation:withRowAnimation:UITableViewRowAnimationRight]; 
    [tableView deleteRowsAtIndexPaths: 
     [NSArray arrayWithObject:[NSIndexPath indexPathForRow:29 inSection:0]] 
        withRowAnimation:UITableViewRowAnimationFade]; 
    [tableView endUpdates]; 
    ... 
} 

Voir la Table View Programming Guide for iPhone OS sur la façon d'effectuer l'insertion par lots et de suppression.

+0

@Sheehan: N'affectez pas à une variable 'timer' si vous ne l'utilisez pas plus tard. Mais gardez cela dans un certain ivar si vous voulez tuer le rafraîchissement de 30 secondes à un moment donné. – kennytm

+0

Pourquoi avez-vous besoin d'enlever le dernier objet? – user1872384

Questions connexes