UITapGestureRecognizer initWithTarget:action: méthode pour prendre des arguments?

Je suis en utilisant UITapGestureRecognizer parce que je suis en utilisant un UIScrollView qui agit comme un conteneur pour mon UILabels. Fondamentalement, je suis en train d'utiliser une méthode d'action avec des arguments, donc je peux par exemple envoyer myLabel.tag valeur de l'action méthode pour connaître les mesures à prendre en fonction de ce UILabel a a été déclenchée par un robinet.

Une façon de le faire est d'avoir autant de méthodes d'action UILabels mais ce n'est pas très "joli" codewise. Ce que je souhaite réaliser est juste une méthode d'action avec des instructions de commutation.

Est-ce possible ou dois-je faire comme ceci (soupir):

UITapGestureRecognizer *myLabel1Tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myLabel1Tap)];
[myLabel1Tap addGestureRecognizer:myLabel1Tap];

UITapGestureRecognizer *myLabel2Tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myLabel2Tap)];
[myLabel1Tap addGestureRecognizer:myLabel2Tap];

UITapGestureRecognizer *myLabelNTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myLabelNTap)];
[myLabel1Tap addGestureRecognizer:myLabelNTap];

- (void)myLabel1Tap {
//Perform action
}

- (void)myLabel2Tap {
//Perform action
}

- (void)myLabelNTap {
//Perform action
}

OriginalL'auteur Peter Warbo | 2011-07-08