有时候在主线程执行一些操作的时候,定时器会被卡死,比如来回滚动和点击屏幕处理一些主线程事务时,
就是说主界面有UITableView或者UIScrollView,滑动UITableView或者UIScrollView。这个时候NSTimer失效了。
NSTimer *timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(someAction) userInfo:nil repeats:YES];
解决方法就是将其加入到UITrackingRunLoopMode模式或NSRunLoopCommonModes模式中。
[[NSRunLoop currentRunLoop] addTimer:timer forMode:UITrackingRunLoopMode];
或者
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
本文探讨了在iOS开发中,当UITableView或UIScrollView进行滑动操作时,NSTimer可能出现的失效现象。文章提供了将定时器加入到UITrackingRunLoopMode或NSRunLoopCommonModes模式中的解决方案,以确保在滑动过程中定时器能够正常工作。

4336

被折叠的 条评论
为什么被折叠?



