2010-01-05 4 views
3

Pour le Facebook et quelques autres applications iPhone, j'ai vu ce qui ressemble à un UITableView avec la rangée supérieure hors de vue pendant que les autres lignes sont rendues. Ensuite, lorsque l'utilisateur fait défiler vers le haut, la toute première rangée devient visible. Généralement, la ligne la plus haute est l'élément "load more ...".Rendre la première rangée de UITableView cachée jusqu'à ce que l'utilisateur fasse défiler sur l'iPhone

Y a-t-il un truc pour que la deuxième rangée ressemble à la première de la table?

Répondre

6

Il y a plusieurs façons de le faire. Le plus simple est simplement de définir le contentOffset de tableView à CGPointMake (0, rowHeight). Cela fera automatiquement défiler la première rangée à l'abri des regards. Faites-le dans votre viewWilLAppear: méthode.

+0

Merci, c'était. J'avais essayé scrollToRowAtIndexPath: animé: avant et réalisé que cela ne fonctionnait pas. – DaGaMs

+0

Cela ne fonctionne pas lorsque l'utilisateur fait défiler vers le bas. –

2

Vous pouvez utiliser le scrollToRowAtIndexPath: atScrollPosition: animation: méthode, sans animation, pour faire défiler jusqu'à la deuxième ligne lorsque votre point de vue est chargé et avant qu'il apparaisse:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    // This is just an example... make sure you have at least 
    // three items in your table :) 
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:2 inSection:0]; 

    [self.tableView scrollToRowAtIndexPath:indexPath 
          atScrollPosition:UITableViewScrollPositionTop 
            animated:NO]; 
} 
Questions connexes