NSTimer和xCode中的重置按钮代码

时间:2014-05-13 15:44:23

标签: ios objective-c nstimer

好的,我正试图创建一个重置按钮,将所有内容重置为原始状态(例如:得分,成绩等)。此应用也适用于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 ...)

请帮我纠正错误。

3 个答案:

答案 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来设置间隔。你尝试过固定值吗?