2010-10-11 3 views
1

J'ai un bouton IBAction que je voudrais activer après un délai de 30 secondes. le bouton serait dans la vue mais désactivé pendant 30 secondes.Désactivation et retard d'un bouton IBAction

Est-ce que quelqu'un sait comment j'irais faire ça?

voici ce que j'ai - simple IBAction qui joue une audio:

-(IBAction) playSound:(id)sender { 

    [theAudio play]; 

} 

Merci pour toute aide.

+0

Fixer la mise en forme, s'il vous plaît. – Emil

+0

que voulez-vous dire? pour le code? – hanumanDev

Répondre

4

Vous pouvez utiliser ceci:

- (IBAction)playSound:(id)sender 
{ 
    [theAudio play]; 
    UIButton *theButton = (UIButton *) sender; 
    theButton.enabled = NO; 
    [self performSelector:@selector(enableButton:) withObject:theButton afterDelay:30.0]; 
} 

- (void)enableButton:(UIButton *)button 
{ 
    button.enabled = YES; 
} 

En supposant que vous souhaitez désactiver le bouton quand il est pressé.

+0

c'est génial. Merci! – hanumanDev

1

Dans viewDidLoad ou toute autre méthode appropriée que vous voulez:

 
[myButton setUserInteractionEnabled:FALSE]; 
[NSTimer scheduledTimerWithTimeInterval:30 target:self selector:@selector(enableButton:) userInfo:nil repeats:NO]; 

Ensuite,

 
- (void)enableButton:(NSTimer *)timer { 
    [myButton setUserInteractionEnabled:TRUE]; 
} 

NOTE: Je n'ai pas compilé le code, juste écrit. Il pourrait y avoir une faute de frappe.

+0

merci pour votre poste – hanumanDev

Questions connexes