iOSIN-NSTimer

timer当屏幕滑动时计时停止问题

主线程的 RunLoop 里有两个预置的 Mode:kCFRunLoopDefaultMode 和 UITrackingRunLoopMode。当scrollView滚动的时候,当前的 MainRunLoop是处于UITrackingRunLoopMode的模式下,在这个模式下,是不会处理NSDefaultRunLoopMode 的消息(因为RunLoop Mode不一样),

这时你需要一个 Timer,在两个 Mode 中都能得到回调,一种办法就是将这个 Timer 分别加入这两个 Mode。还有一种方式,就是将 Timer 加入到顶层的 RunLoop 的 “commonModeItems” 中。

[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

timer互相持有问题

一般通过中间介质的方式解决。

你可能感兴趣的:(iOSIN-NSTimer)