2016-10-15 4 views
0

Lorsque j'essaie de définir la vue accessoire d'une cellule de vue de table sur une image de type personnalisé et de l'exécuter dans le simulateur, je vois que plusieurs cellules ont l'image de vue accessoire au lieu de celle actuellement choisi. Mais lorsque je définis la vue accessoire sur "cell.accessoryType = UITableViewCellAccessoryCheckmark;", je n'ai pas ce problème. Voici le code.Objectif C Cellulaire vue accessoire

id item = [_items objectAtIndex:row]; 

if ([_currentVale isKindOfClass:[NSString class]]) 
{ 
    if ([item isEqualToString:_currentVale]) 
    { 

     UIImageView *checkmark = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"checkmark-outline.png"]]; 
     checkmark.frame = CGRectMake(0, 0, 20, 20); 
     cell.accessoryView = checkmark; 
    } 
    else 
    { 
     cell.accessoryType = UITableViewCellAccessoryNone; 
    } 
} 
else if ([_currentVale isKindOfClass:[NSNumber class]]) 
{ 
    if ([item isEqualToNumber:_currentVale]) 
    { 
     cell.accessoryType = UITableViewCellAccessoryNone; 

    } 
    else 
    { 
     cell.accessoryType = UITableViewCellAccessoryNone; 


    } 
} 

Deux images de ce dont je parle. Une seule valeur doit être choisie dans le sélecteur, mais il y a deux montrant la coche

Image 1

Image 2

Répondre

0

Les cellules sont réutilisées. Vous devez également régler la vue des accessoires sur zéro.

else 
    { 
     cell.accessoryType = UITableViewCellAccessoryNone; 
     cell.accessoryView = nil; 
    } 
0

Dans la cellule que vous ne voulez pas montrer l'image, ne pas oublier de mettre

cell.accessoryView = nil;