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