升压按钮延迟

时间:2012-07-16 07:48:59

标签: iphone objective-c ios cocoa-touch

我正在用增强按钮制作游戏。当然,只要将其保持为启用状态,玩家就可以不断点击它。所以,我需要20秒的延迟才能再次按下按钮。此外,是否可以在按钮上显示此进度,最好是按钮本身?

1 个答案:

答案 0 :(得分:0)

将来请尝试展示您尝试解决问题的方法。但是,既然你是新人,我会让它滑一次!

此代码使用每秒调用一次的NSTimer。它将激活您为“Boost”指定的代码。它还会禁用按钮上的用户交互,直到按下按钮20秒,此时它将允许用户再次按下按钮,最后,此代码显示“Boost”可以保留的秒数在按钮的titleLabel属性上再次使用。

- (IBAction)buttonPressed:(id)sender
{
    myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(activateBoost) userInfo:nil repeats:YES];
}

- (void)activateBoost
{

    if (myButton.userInteractionEnabled == YES) {
        //Put your Boost code here!


    }

    if ([myButton.titleLabel.text intValue] == 0) {
        [myTimer invalidate];
        [myButton setTitle:@"20" forState:UIControlStateNormal];
        myButton.userInteractionEnabled = YES;
    }else{
        myButton.userInteractionEnabled = NO;
        int currentTime = [myButton.titleLabel.text intValue];
        int newTime = currentTime - 1;
        myButton.titleLabel.text = [NSString stringWithFormat:@"%d",newTime];
    }

}

为了使上述代码有效,您需要声明一个名为“myTimer”的NSTimer和一个UIButton“myButton”。您还需要将按钮初始文本设置为“20”。