Dans mon programme, j'ai un uitapgesurerecognizer code> que j'ai initialisé avec
initwithTarget: action: code>. Je suis passé dans un sélecteur pour appeler une méthode du nom de
PlanettTetheapped: (UiImageView *) APLANET code>. Cela appelle la méthode bien, mais j'aimerais savoir comment passer des arguments dans
Action: Code> Comme si vous le feriez avec
SpectacleSelector: withObject code>. Est-ce peuplé? Il serait logique de vous permettre d'envoyer des arguments au sélecteur
uigesturerecognizer code>. Toute aide est appréciée. P>
3 Réponses :
La bonne signature pour la méthode à appeler serait: puis vous pouvez accéder à la vue qui a reçu le geste en appelant: p> En effet, c'est ce que Référence Uigesurer états: p> Un reconnaissance de geste a une ou plusieurs paires d'action cible associées à celle-ci. S'il y a plusieurs paires d'action cible, elles sont discrètes et non cumulatives. La reconnaissance d'un geste entraîne l'envoi d'un message d'action à une cible pour chacune de ces paires. Les méthodes d'action invoquées doivent être conformes à l'une des signatures suivantes: p>
Ahh, bien sûr. J'aurais dû y penser. Merci pour ton aide!
- (void)viewDidLoad { UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPressOnPhotos:)]; [yourView addGestureRecognizer:longPressRecognizer]; } - (IBAction)handleLongPressOnPhotos:(UILongPressGestureRecognizer *)sender{ // use "sender.view" to get the "yourView" you have long pressed } hope these would help you.
Dans SWIFT 3.0, la signature de fonction est la suivante (substitut une autre classe de reconnaissance de geste selon que nécessaire dans ces exemples): Vous faites référence à cette fonction lors de la configuration de vos reconnaissants de geste comme suit: p> puis, pour accéder à la vue (dans mon cas, un bouton) enfoncé, utilisez le code: p> if (sender.state == UIGestureRecognizerState.ended) {
// Your code here
}