2011-03-26 4 views
1

Je veux que l'un de mes boutons agisse différemment sur différents taps. Parce que c'est le même bouton que j'utilise chaque fois qu'une action particulière se produit.Le même bouton devrait faire plusieurs tâches

Existe-t-il un moyen de le faire?

Merci,

+0

Bonne chance en cliquant sur un écran tactile est ce que je vous souhaite. –

+1

différents moyens de robinets? Simple, Double, Triple tape? Ou plus comme l'icône Acheter dans l'App Store? –

Répondre

1

Si vous voulez que votre bouton pour agir différent, vous devez créer différentes méthodes pour faire les différentes actions. Ensuite, chaque fois que vous voulez modifier le comportement des boutons, vous devez définir le bouton pour gérer l'action souhaitée.

Ainsi, pour la première action:

[button addTarget:self action:@selector(method1:) forControlEvents:UIControlEventTouchUpInside]; 

- (void) method1 
{ 
//set button to handle method 2 
[button addTarget:self action:@selector(method2:) forControlEvents:UIControlEventTouchUpInside]; 
} 

- (void) method 2 
{ 

} 
2

Ajouter un UIGestureRecognizer supplémentaire;) robinet simple est l'action qui sera lié, mais vous pouvez ajouter d'autres types de gestes comme taper deux fois, balayez, etc.

0

Le bouton n'appelle qu'une méthode dans votre contrôleur de vue lorsqu'il est appuyé. De là, vous faites quelque chose comme ceci:

if (internalState == FOO) { 
    [self doA]; 
} else { 
    [self doB]; 
} 
2

Vous pouvez utiliser la propriété tag du bouton; donc à l'intérieur de votre méthode IBAction.

-(void)buttonClicked:(id)sender{ 
    UIButton *button = (UIButton *)sender; 
    if (button.tag == 1) { 
     // perform your required functionality 
     button.tag = 2; 
    } 
    else if (button.tag == 2) { 
     // perform your required functionality 
     button.tag = 3; 
    } 
    else if (button.tag == 3) { 
     // perform your required functionality 
     button.tag = 1; 
    } 
} 

Et ne pas oublier de définir la valeur d'étiquette initiale 1.

Questions connexes