我正在制作一个带有增强按钮的游戏。当然,只要让它保持启用状态就可以让玩家不断地点击它。所以,我需要 20 秒的延迟才能再次按下按钮。此外,是否可以在按钮上显示此进度,最好是在按钮本身上?
问问题
59 次
1 回答
0
以后请尝试展示您为解决问题所做的尝试。不过,既然你是新来的,我就让它滑一次!
此代码使用NSTimer
每秒调用一次的 a。它将触发您为“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];
}
}
为了使上述代码正常工作,您需要声明一个NSTimer
名为“myTimer”和一个UIButton
“myButton”。您还需要将按钮的初始文本设置为“20”。
于 2012-07-17T07:09:26.180 回答