如何防止 NSTimer 被用户滚动表格延迟?
我找到了答案:
我有一个计时器,它以 0.4 到 0.8 秒的间隔重复大约 8 或 9 次。我不需要太多的精度,但是如果用户滚动表格,计时器将停止工作,直到表格完成滚动(这可能需要等待几秒钟!)。我以为我需要后台线程,但是后台线程上的计时器实现起来有些复杂。
我的问题的答案非常简单易行。我只需要在调用计时器后添加一行:
//////////// start the timer
self.playingTimer = [NSTimer scheduledTimerWithTimeInterval:tempo target:self selector:@selector(playSoundFromArray:) userInfo:nil repeats:YES];
//////////// the magic line:
[[NSRunLoop currentRunLoop] addTimer:self.playingTimer forMode:UITrackingRunLoopMode];
现在我可以随心所欲地滚动表格,而且我的计时器工作正常!!!
现在我需要多研究一点 NSRunLoop ......