我有一个简单的计时器使用,通过按下按钮激活。它从60到0没有问题,但我想要的是停止并重置按钮上的计时器。我按照下面的代码按下按钮时设法停止了它,但由于某种原因无法让它重置并停在60.这应该很简单,但它不起作用。有什么建议吗?
使用简单操作设置计时器
- (IBAction)timerStart:(id)sender {
if(!secondCounter == 0){
[countdownTimer invalidate];
}
else {
[self setTimer];
}
}
定时器代码
- (void)timerRun {
secondCounter = secondCounter - 1;
int minutes = secondCounter;
NSString *timerOutput = [NSString stringWithFormat:@"%d", minutes ];
countDownLabel.text = timerOutput;
if(secondCounter == 0){
[countdownTimer invalidate];
countdownTimer = nil;
}
}
- (void)setTimer {
secondCounter = 60;
countdownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerRun) userInfo:nil repeats:YES];
}
答案 0 :(得分:6)
您需要将秒数设置为0,否则您总是使计时器无效,但永远不会再启动它:
- (IBAction)timerStart:(id)sender {
if(!secondCounter == 0) {
[countdownTimer invalidate];
secondCounter = 0;
}
else {
[self setTimer];
}
}
答案 1 :(得分:2)
停止计时器是什么意思?计时器不会停止。您希望countDownLabel.text
显示60?当您使计时器无效时,它将停止运行并调用timerRun
方法如果要重新启动计时器,只需再次调用setTimer
功能。我认为你的意思是在countDownLabel.text = @"60"
之后[countdownTimer invalidate];
,当你再次点击按钮时,计时器将再次启动,并将更改标签。如果这是您正在寻找的,请告诉我。
正如克里斯蒂安所说,你必须重置第二个反击者
secondCounter = 0;