Contexte
Je suis en train de faire un UICollectionViewCell
comme un comporter bouton (c.-à-faire une faible animation sur le toucher). J'ai eu l'idée de juste remplir la cellule avec un UIButton
. Le bouton prend alors soin de l'effet visuel d'être engagé. Mais alors je devrais passer l'événement tactile sur le parent (le UICollectionViewCell
) de sorte que le bouton ne consomme pas seulement l'événement. De cette façon, je pourrais le gérer avec la vue de la collection didSelectItemAtPath
. Le problème ci-dessous est ma tentative de comprendre comment passer l'événement.Comment envoyer les événements tactiles à nextResponder à Swift
Mon problème
je suis tombé sur this Objective-C answer pour passer l'événement tactile sur:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
[self.nextResponder touchesBegan:touches withEvent:event];
}
Cependant, je me suis coincé quand j'ai essayé de convertir en Swift:
class MyButton: UIButton {
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
super.touchesBegan(touches, withEvent: event)
self.nextResponder() // ???
}
}
Le La méthode ne prend aucun argument, alors comment transmettre les événements tactiles?
Je n'ai pas pu utiliser les questions SO connexes (here et here) pour m'aider à comprendre cela.
Cela résout la question que je posais. Malheureusement, mon 'UICollectionViewCell' ne semble toujours pas recevoir les événements tactiles. À moins que vous sachiez ce que le problème peut être à portée de main, cependant, cela appelle probablement une nouvelle question. – Suragch