scheduledTimerWithTimeInterval在滚动时不更新计时器方法?

时间:2014-05-29 05:09:25

标签: ios iphone nstimer

我有计时器的奇怪问题。计时器在应用程序中正在更新。我正在展示代码。

//启动计时器

#pragma mark- Timer
- (void)startTimer
{
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];
}

//更新计时器

- (void)updateTimer:(NSTimer *)theTimer
{
    NSLog(@"called"); 
}

问题:当我在文本中滚动文本时,我有一个textview textview updateTimer方法停止调用,当我停止时 滚动然后它开始更新计时器。

现在该怎么做才能继续调用更新计时器方法?

2 个答案:

答案 0 :(得分:5)

要解决此问题,您需要将NSTimer添加到mainRunLoop。如此,

- (void)startTimer
{
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];
    [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
}

答案 1 :(得分:0)

你也可以这样做,

 NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.001 
                                                             target:self 
                                                           selector:@selector(updateTimer:) 
                                                           userInfo:nil 
                                                            repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:timer 
                             forMode:NSRunLoopCommonModes];