我有计时器的奇怪问题。计时器在应用程序中正在更新。我正在展示代码。
//启动计时器
#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方法停止调用,当我停止时 滚动然后它开始更新计时器。
现在该怎么做才能继续调用更新计时器方法?
答案 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];