禁用和延迟IBAction按钮

时间:2010-10-11 16:22:31

标签: objective-c iphone ibaction

我有一个IBAction按钮,我希望在延迟30秒后启用它。按钮将在视图中,但禁用30秒。

有谁知道我会怎么做呢?

这就是我所拥有的 - 一个播放音频的简单IBAction:

-(IBAction) playSound:(id)sender {

    [theAudio play];

}

2 个答案:

答案 0 :(得分:4)

您可以使用:

- (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;
}

假设您想要在按下按钮时禁用该按钮。

答案 1 :(得分:1)

在viewDidLoad或您想要的其他合适方法中:

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

然后,

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

注意:我没有编译代码,只是写了。可能有拼写错误。