11
votes

Envoi d'arguments au sélecteur d'initialisation de la reconnaissance de gestes?

Dans mon programme, j'ai un uitapgesurerecognizer que j'ai initialisé avec initwithTarget: action: . Je suis passé dans un sélecteur pour appeler une méthode du nom de PlanettTetheapped: (UiImageView *) APLANET . Cela appelle la méthode bien, mais j'aimerais savoir comment passer des arguments dans Action: Comme si vous le feriez avec SpectacleSelector: withObject . Est-ce peuplé? Il serait logique de vous permettre d'envoyer des arguments au sélecteur uigesturerecognizer . Toute aide est appréciée.


0 commentaires

3 Réponses :


13
votes

La bonne signature pour la méthode à appeler serait: xxx

puis vous pouvez accéder à la vue qui a reçu le geste en appelant: xxx

En effet, c'est ce que Référence Uigesurer états:

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:

  • (vide) manipulable;
  • (vide) manuserie: (UIGESTurerecognizer *) Gesurerecognizer;

1 commentaires

Ahh, bien sûr. J'aurais dû y penser. Merci pour ton aide!



6
votes
- (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.

0 commentaires

0
votes

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): xxx pré>

Vous faites référence à cette fonction lors de la configuration de vos reconnaissants de geste comme suit: p> xxx pré>

puis, pour accéder à la vue (dans mon cas, un bouton) enfoncé, utilisez le code: p> xxx pré> p> Enfin, n'oubliez pas que cette fonction est appelée plusieurs fois (généralement lorsque le geste commence et quand il se termine), vous voudrez donc vérifier l'état, que vous pouvez faire comme suit: P>

if (sender.state == UIGestureRecognizerState.ended) {
    // Your code here
}


0 commentaires