UITableView cell accessoryVoir problème d'image
J'essaie d'afficher un cadenas icône sur des lignes spécifiques de mon UITableViewCells l'aide de ce code:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TopicCell"];
GPBTopic *topic = [self.topics.list objectAtIndex:indexPath.row];
cell.textLabel.text= topic.name;
if ((indexPath.row == 5) || (indexPath.row == 9))
{
cell.accessoryView = [[ UIImageView alloc ] initWithImage:[UIImage imageNamed:@"lock_icon.png"]];;
[cell.accessoryView setFrame:CGRectMake(0, 0, 24, 24)];
}
return cell;
}
Je suis un drôle de résultat - le cadenas est d'abord sur les lignes 5,9 mais quand je scroll vers le bas et en haut de la liste, l'icône devient réaffiché par hasard sur d'autres cellules accessoryView (il y a seulement 1 article btw), et le scrolling devient assez saccadé et lag... plus je défilement vers le haut/vers le bas la plus instances sont affichées!
Pourquoi? où est le bug?
aider, merci!
source d'informationauteur mindbomb
Vous devez vous connecter pour publier un commentaire.
Les cellules sont réutilisés. Vous devez réinitialiser le accessoryView à chaque fois.
C'est juste un petit changement:
Juste pour la fin, vous pouvez également utiliser Eric solution comme celle - ci, il peut être plus rapide, puisque l'imageView n'est pas créé à chaque fois. Mais c'est seulement une différence minime. Probablement votre gal ont d'autres raisons.