2011-04-17 2 views
10

J'ai un UITableviewCell. Lorsqu'un utilisateur clique sur la cellule, je sauvegarde le chemin d'index, puis j'appelle la méthode cellforrowAtIndexpath pour obtenir la cellule, puis j'appelle SetHighlighted: TRUE sur cette cellule.Comment faire pour que l'état de surbrillance UITableViewCell persiste

Cela fonctionne très bien, mais le problème est que lorsque je fais défiler vers le haut et vers le bas le tableau, la cellule sélectionnée réapparaît quand elle n'est pas mise en surbrillance. Comment faire pour que la couleur bleue en surbrillance persiste afin que l'utilisateur puisse voir sa sélection visuellement même après avoir fait défiler la table vers le haut ou vers le bas?

Merci

Répondre

19

sauver la indexPath de la cellule sélectionnée

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    self.selectedIndexPath = indexPath; 
} 

et comparer à tableVIew:cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    // configure cell 
    if ([indexPath isEqual:self.selectedIndexPath]) { 
     [cell setHighlighted:YES]; 
    } 
    else { 
     [cell setHighlighted:NO]; 
    } 
    return cell; 

} 

Cependant, gardez à l'esprit que la pomme décourage l'utilisation de l'état de mise en surbrillance de cellule indique la cellule sélectionnée. Vous devriez probablement utiliser cell.accessoryType = UITableViewCellAccessoryCheckmark;

+0

Je vois merci, je vais l'essayer maintenant. – banditKing

+0

Merci pour la réponse. Mais j'ai déjà un accessoireVoir en tant que détaildisclosureindicator. C'est pourquoi je voulais mettre en évidence la cellule. Serait-ce un problème avec Apple? Qu'est-ce que tu me conseilles? Merci – banditKing

+0

Vous ne pouvez jamais savoir si ça va avec eux. Parfois, ils sont très stricts sur le HIG, parfois pas tellement. Je voudrais juste essayer de le soumettre comme il est. Dans le pire des cas, ils le rejettent et vous le changez. –

Questions connexes