iOS 定时器NSTimer 不受UISrollView滑动影响

创建不受滑动影响的NSTimer步骤:

1.手动创建一个NSTimer

2.获取当前线程的RunLoop

3.将NSTimer 按照指定模式加入到RunLoop中

具体代码如下:

- (void)addTimer{

             NSTimer *timer=  [NSTimer scheduledTimerWithTimeInterval:1.0 target:self        selector:@selector(timerFunction:) userInfo:nil repeats:YES];

             [timer setFireDate:[NSDate distantPast]];

            //解决滑动 定时器不走的问题

            NSRunLoop *runLoop = [NSRunLoop currentRunLoop];

            [runLoopaddTimer:timer forMode:NSRunLoopCommonModes];

}

本质:

加入到commonModes中,实际上系统是找出commonModes代表的所有Mode(如NSDefaultRunLoopMode、UITrackingRunLoopMode),然后分别将其加入这些mode中。

你可能感兴趣的:(iOS 定时器NSTimer 不受UISrollView滑动影响)