2010-11-16 36 views
0

Dans mon application, j'ai écrit ces lignes de code:est la reconnaissance de geste fonctionnant sur des boutons ou pas?

- (void)viewDidLoad { 
[super viewDidLoad]; 

UITapGestureRecognizer *tapper = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)]; 

[mybutton1 addGestureRecognizer:tapper]; 
[mybutton2 addGestureRecognizer:tapper]; 
[mybutton3 addGestureRecognizer:tapper]; 

    [tapper release]; 
} 

-(void)tapped:(UIGestureRecognizer *)sender{ 
NSLog(@"I'am in tapped"); 


} 

, mais rien ne se passait. Pourquoi ? et si j'ai besoin d'activer le bouton currentTitle à l'intérieur, puis-je?

Merci

Répondre

0

Il vous manque le délégué de reconnaissance. Implémentez cela. Vous devez également ajouter le protocole UIGestureRecognizerDelegate à votre fichier d'en-tête et créer recognizer.delegate = self. Re: obtenir le titre - vous pouvez obtenir le titre. Dans votre gestionnaire d'événements tap, vous pouvez extraire cette information de l'objet expéditeur. Je posterai du code plus tard ...

+0

ok Im vouloir u rappeler que j'ai 8 boutons et chaque bouton Emettre un son (Drag sont très importants) –

0

Vous n'avez pas besoin d'utiliser un outil de reconnaissance gestuelle juste pour détecter quand un bouton est enfoncé. Un bouton sait quand il est pressé!

Essayez:

{ 
    // Blah... 
    [myButton addTarget:self action:@selector(tapped:) forControlEvents:UIControlEventTouchUpInside]; 

    // Other stuff 
} 

-(void)tapped:(id)sender { 
    NSLog (@"I'm in tapped!"); 
} 
0

Un geste de reconnaissance ne peut être attaché à un point de vue à la fois. La manipulation de simples tapotements sur des boutons peut tout aussi bien se faire avec IBAction. Vous pouvez créer un IBAction et y connecter les trois boutons.

- (IBAction)tapped:(id)sender { 
UIButton *button = (UIButton *)sender; 
NSLog(@"%@", button.titleLabel.text); 
} 

Une question similaire: UITapGestureRecognizer on a UIButton