1

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

有谁知道我会怎么做?

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

-(IBAction) playSound:(id)sender {

    [theAudio play];

}
4

2 回答 2

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

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

于 2010-10-11T16:35:05.430 回答
1

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

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

然后,

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

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

于 2010-10-11T16:30:40.930 回答