創(chuàng)建不受滑動影響的NSTimer步驟:
1.手動創(chuàng)建一個NSTimer
2.獲取當(dāng)前線程的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];
}
本質(zhì):
加入到commonModes中,實際上系統(tǒng)是找出commonModes代表的所有Mode(如NSDefaultRunLoopMode、UITrackingRunLoopMode),然后分別將其加入這些mode中。