2010-10-10 8 views
0

J'ai un UITableView que je veux utiliser pour autoriser plusieurs sélections. J'ai roulé ensemble la plupart des fonctionnalités, mais j'ai un petit problème.UITableView sélection multiple

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSLog(@"Selected"); 
    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath]; 

    if ([selectedCell accessoryType] == UITableViewCellAccessoryNone) { 
     [selectedCell setBackgroundColor:[UIColor grayColor]]; 
     [selectedCell setAccessoryType:UITableViewCellAccessoryCheckmark]; 
     [[selectedCell textLabel] setTextColor:[UIColor whiteColor]]; 
    } else { 
     [selectedCell setAccessoryType:UITableViewCellAccessoryNone]; 
     [selectedCell setBackgroundColor:[UIColor clearColor]]; 
     [[selectedCell textLabel] setTextColor:[UIColor blackColor]]; 
    } 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

C'est le code que je utilise pour maintenir la cellule sélectionnée, mais lorsque l'utilisateur tape sur la cellule, la vue aaccessory devient blanc et se retourne vers le bleu.

Quelle est la meilleure façon de garder la vue accessoire blanche?

Merci

Répondre

2

je crois moyen facile d'y parvenir est en créant imageview personnalisé avec l'image coche (vous devez obtenir comme coche blanche) et le définir comme vue accessoire lorsqu'il est sélectionné. Cela permettra d'éviter le comportement standard de l'accessoire et d'atteindre votre objectif.

Questions connexes