好的,我正试图创建一个重置按钮,将所有内容重置为原始状态(例如:得分,成绩等)。此应用也适用于NSTimer
。但是,每次按下重置按钮时,定时器每次都会变快。这是我的代码:
int count;
- (void)updateUI:(NSTimer *)timer {
count++;
if (count <=10)
self.progressView.progress = (float)count/10.0f;
else {
[self.myTimer invalidate];
self.myTimer = nil;
}
}
- (void) resetTimer {
count = 0;
self.myTimer =
[NSTimer scheduledTimerWithTimeInterval:interval
target:self
selector:@selector(updateUI:)
userInfo:nil
repeats:YES];
}
(在self.myTimer
方法中调用viewDidLoad
...)
请帮我纠正错误。
答案 0 :(得分:4)
重置时需要使现有计时器无效。它变得更快的原因是因为当您再次点击updateUI
按钮时,您经常拨打resetTimer
两次。在安排新计时器之前使其无效。
答案 1 :(得分:4)
正如Stonz2所说
- (void) resetTimer {
count = 0;
[[self myTimer] invalidate];
[self setMyTimer:nil];
[self setMyTimer:[NSTimer scheduledTimerWithTimeInterval:interval
target:self
selector:@selector(updateUI:)
userInfo:nil
repeats:YES]];
}
答案 2 :(得分:-2)
您正在使用&#34; interval&#34; -variable来设置间隔。你尝试过固定值吗?