Je veux juste que la cellule se met en surbrillance brièvement avec un UICOLOR ou une image d'arrière-plan avant d'animer l'état non sélectionné lorsqu'un utilisateur tapote la cellule. Je marquais la cellule avec une étoile pour montrer qu'elle a été sélectionnée mais que j'aimerais que toute la cellule souligne brièvement simplement pour montrer la sélection. P>
4 Réponses :
Ajouter cette ligne dans le dactSelectrowatidexPath -
Aussi facile que ça! Merci, connaissez-vous un moyen de contrôler la durée de l'animation?
Je ne pense pas que cela soit possible avec cette méthode. Vous pouvez le faire avec une animation personnalisée de la cellule.
Si vous souhaitez contrôler l'animation car il faut trop de temps, vous pouvez aimer la rapidité avec laquelle il clignote lorsque vous définissez animé sur False / NO
Si vous souhaitez plus de contrôler ce que l'on ressemble à la surbrillance, vous pouvez utiliser la propriété "En surbrillance" de l'étiquette de la cellule et définir la sélection de plans sélectionnés. Les deux vont brièvement clignoter sur et éteindre lors de la sélection
// text color [[cell textLabel] setTextColor:[UIColor blackColor]]; [[cell textLabel] setHighlightedTextColor:[UIColor whiteColor]]; // background image UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cell-background.png"]]; [cell setBackgroundView:backgroundView]; [backgroundView release]; UIImageView *selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cell-background-highlighted.png"]]; [cell setSelectedBackgroundView:selectedBackgroundView]; [selectedBackgroundView release];
Je pense que la réponse fournie est solide si vous souhaitez animer une seule ligne en réponse à la sélection.
Je cherchais un moyen de le faire avec plusieurs rangées simultanément et sans sélectionner et désélectionner les lignes en réponse au toucher. J'ai fait ce qui suit: p>
a créé une méthode dans mon utilviewController appelé "calloutcells": p> Notez que la durée et le retard ne changent pas l'animation J'ai choisi depuis que j'utilise l'animation intégrée sur SetHighlight. P> Lorsque je souhaite initier l'animation de surbrillance / Legighighlight à partir de l'UitailViewController, je peux simultanément mettre en surbrillance les lignes 3 et 4 de la section 0 comme celle-ci: P> [self calloutCells:[NSArray arrayWithObjects:
[NSIndexPath indexPathForRow:3 inSection:0],
[NSIndexPath indexPathForRow:4 inSection:0], nil]];
Solution très simple et très élégante.
Cela fonctionne très bien et a l'avantage supplémentaire de permettre de clignoter programmatique programmatique ( dactSelectrowatidexpath code> est appelé uniquement sur des lignes réellement tarées).
SWIFT3 Version:
self.selectionStyle = .blue let uiview = UIView(frame: CGRect(x: 0, y: 0, width: 209, height: 251)) uiview.backgroundColor = UIColor.red self.selectedBackgroundView = uiview