Sur un UILongPressGestureRecognizer comment puis-je détecter quel est l'objet qui a généré l'événement?
J'ai vue avec plusieurs UIButtons. J'ai mis en œuvre avec succès à l'aide de UILongPressGestureRecognizer avec la suite que le sélecteur;
- (void)longPress:(UILongPressGestureRecognizer*)gesture {
if ( gesture.state == UIGestureRecognizerStateEnded ) {
NSLog(@"Long Press");
}
}
Ce que j'ai besoin de savoir au sein de cette méthode est qui UIButton reçu le appuyez de manière prolongée car j'ai besoin de faire quelque chose de différent, selon le bouton sur lequel reçu le appuyez de manière prolongée.
J'espère que la réponse n'est pas un problème de cartographie, les coordonnées de l'endroit où le appuyez de manière prolongée s'est produite à la frontière de l'boutons - serait plutôt de ne pas y aller.
Des suggestions?
Merci!
OriginalL'auteur macgeezer | 2011-09-09
Vous devez vous connecter pour publier un commentaire.
Cette option est disponible dans
gesture.view
.OriginalL'auteur Rob Napier
Êtes-vous d'ajouter le clic long geste contrôleur à la UIView qui a le UIButtons comme des sous-vues? Si oui, quelque chose le long des lignes de @Magic Bullet Dave approche est probablement la voie à suivre.
Une alternative consiste à sous-classe UIButton et ajouter à chaque UIButton un longTapGestureRecogniser. Vous pouvez obtenir votre bouton pour faire ce que vous aimez. Par exemple, il pourrait envoyer un message identifiant lui-même à la vue du contrôleur. L'extrait de code suivant illustre les méthodes de la classe fille.
Dans votre contrôleur, vous pourriez avoir le code quelque chose comme ceci:
J'ai pensé à elle...ajout d'un protocole et il a fixé. merci..
OriginalL'auteur Obliquely
Si votre vue contient plusieurs sous-vues (comme beaucoup de boutons), vous pouvez déterminer ce qui a été tapé:
OriginalL'auteur Magic Bullet Dave