couleur de sélection pour un UITableViewCell
-
05-07-2019 - |
Question
Si j'ai un UITableViewCell
personnalisé qui n'utilise pas le textLabel
intégré à la cellule, mais crée son propre dessin, comment puis-je modifier l'aspect du contentView
lors de la sélection, comme pour le texte par défaut (personnalisable en définissant le selectedTextColor:
)?
Si je change tableView: willSelectRowAtIndexPath:
, il ne sera mis à jour que lorsque l'arrière-plan de sélection bleu sera activé, mais pas pendant qu'il est animé, comme je le souhaite.
La solution
Ne sous-classez pas UITableViewCell et n’utilisez pas le comportement par défaut. Vous pouvez entièrement personnaliser une cellule sans aucun sous-classement.
Lisez cet article pour plus de détails.
Autres conseils
Ajoutez ce code dans votre méthode tableview cellForRowAtIndexPath et modifiez simplement la couleur attendue pour le style de sélection UITableViewCell.
//-------------------------------------------------------------------------
//background selected view
UIView *viwSelectedBackgroundView=[[UIView alloc]init];
viwSelectedBackgroundView.backgroundColor=[UIColor colorWithRed:124.0/255.0 green:202.0/255.0 blue:227.0/255.0 alpha:1.0];
cell.selectedBackgroundView=viwSelectedBackgroundView;
//-------------------------------------------------------------------------
Si vous avez sous-classé une UITableViewCell, vous pouvez personnaliser les éléments de la cellule en remplaçant les éléments suivants:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
if(highlighted) {
self.backgroundColor = [UIColor redColor];
} else {
self.backgroundColor = [UIColor clearColor];
}
[super setHighlighted:highlighted animated:animated];
}