Comment envoyer des events tactiles à nextResponder dans Swift

Context

J'essaie de faire en sorte qu'un UICollectionViewCell se comporte comme un button (c.-à-d., UICollectionViewCell un dim animé au toucher). J'ai eu l'idée de juste remplir la cellule avec un UIButton . Le button 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 button ne consum pas simplement l'événement. De cette façon, je pourrais le gérer avec la vue de collection de didSelectItemAtPath . Le problème ci-dessous est ma tentative de comprendre comment passer l'événement.

Mon problème

Je suis tombé sur cette réponse Objective-C 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 cela en Swift:

 class MyButton: UIButton { override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { super.touchesBegan(touches, withEvent: event) self.nextResponder() // ??? } } 

La méthode nextResponder ne prend aucun argument, alors comment transmettre les events tactiles?

Je n'ai pas été en mesure d'utiliser les questions SO connexes ( ici et ici ) pour m'aider à comprendre cela.

La méthode nextResponder renvoie un UIResponder? facultatif UIResponder? , vous pouvez donc simplement appeler touchesBegan sur l'object returnné:

 self.nextResponder()?.touchesBegan(touches, withEvent: event)