iOS - UITapGestureRecognizer - Sélecteur avec des arguments
Dans mon application je suis ajouter dynamiquement des images de mon point de vue au moment de l'exécution. Je peux avoir plusieurs images sur l'écran en même temps. Chaque image est chargée à partir d'un objet. J'ai ajouté un tapGestureRecongnizer à l'image de sorte que la méthode est appelée lorsque je la frappe.
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
[plantImageView addGestureRecognizer:tapGesture];
Mon problème est que je ne sais pas quelle est l'image que j'ai tapé. Je sais que je peux appeler tapGestureRecognizer.emplacement pour obtenir l'emplacement à l'écran, mais ce n'est pas vraiment beaucoup de bien de moi. Idéalement, je voudrais être en mesure de passer de l'objet que l'image a été chargée de dans le robinet geste. Cependant, il semble que je suis seulement en mesure de passer dans le nom du sélecteur "imageTapped:" et pas ses arguments.
- (IBAction)imageTapped:(Plant *)plant
{
[self performSegueWithIdentifier:@"viewPlantDetail" sender:plant];
}
Personne ne sait d'une manière que je peux passer mon objet comme argument dans la tapGestureRecongnizer ou de toute autre manière, je peux obtenir une poignée sur elle?
Grâce
Brian
source d'informationauteur Brian Boyle | 2012-03-31
Vous devez vous connecter pour publier un commentaire.
Vous y êtes presque. UIGestureRecognizer a une propriété en vue. Si vous répartir et fixer un geste de reconnaissance à chaque affichage de l'image, comme il semble que vous faites dans l'extrait de code - alors votre geste de code (sur la cible) peut ressembler à ceci:
Ce qui est moins clair, à partir du code que vous avez fournie est de savoir comment vous associez votre modèle d'Usine de l'objet avec ses imageView, mais il pourrait être quelque chose comme ceci:
Maintenant le gr code: