Runloop应用:Timer失效问题
作者:
南城同學 | 来源:发表于
2017-08-14 09:14 被阅读0次背景:
- 添加Timer,当拖动tableView的时候,
timer失效。
失效原因:
- runloop有两种model:
kCFRunLoopDefaultMode(NSDefaultRunLoopMode)(App的默认Mode,通常主线程是在这个Mode下运行)和UITrackingRunLoopMode(界面跟踪 Mode,用于 ScrollView 追踪触摸滑动);
- 而 Timer 是在model中;
- 常规的添加timer方法,只添加在了
kCFRunLoopDefaultMode(NSDefaultRunLoopMode)中,拖动tableView时,model切换为UITrackingRunLoopMode,而里面没有定义Timer,所以timer就失效了。
解决:
NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 repeats:YES block:^(NSTimer * _Nonnull timer) {
}];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
本文标题:Runloop应用:Timer失效问题
本文链接:https://www.haomeiwen.com/subject/evbyrxtx.html
网友评论