NSTimer -滑动中的NSTimer
个人博客地址 NSTimer误差原因 (NSDefaultRunLoopMode 是普通状态下,TrackingRunLoopMode是处于滑动状态) 1,NSTimer添加在主线程中,模式是NSDefaultRunLoopMode, 主线程处理所有添加在主线程中的事件,例如UI界面的刷新,复杂的运算,等等,过多主线程事件的处理,导致线程阻塞。 2,模式的改变,当NSTimer添加到NSDefaultRunLoopMode中的时候,会重复调用,当滑动ScrollView的时候,Runlop会将Model切换到TrackingRunLoopMode,这时候的NSTimer事件就不会回调,所以不准。 <!more-> @interface ViewController () /** 定时器1 */ @property (nonatomic,strong)NSTimer *timer; @end - (void)viewDidLoad { [super viewDidLoad]; // 主线程 [self mainThreadTimerOne]; [self mainThreadTimerTwo]; // 子线程 NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector