iOS 解决NSTimer在UITableView滑动中暂停问题
来源:互联网 发布:程序员示爱网页源代码 编辑:程序博客网 时间:2024/05/22 09:42
最近在研究动画特效。发现将NSTimer动画添加到tableVIew上的时候会遇见动画暂停的问题,其实是动画的计时器停止了,经过研究找到了解决方法, 和大家分享一下。
当你使用下面这个方法创建NSTimer的时候
class func scheduledTimer(timeInterval ti: TimeInterval, target aTarget: Any, selector aSelector: Selector, userInfo: Any?, repeats yesOrNo: Bool) -> Timer
在tableview滑动时timer就是显示暂停,原因是timer的这个简便构造方法把timer加入了NSRunLoopDefaultMode上,而tableview在滑动时只会处理UITrackingRunLoopMode,也就是说当前的RunLoop并没有功夫处理timer事件。
解决的方法是将timer绑定到NSRunLoopCommonModes上,通过以下方法构造timer:
init(timeInterval ti: TimeInterval, target aTarget: Any, selector aSelector: Selector, userInfo: Any?, repeats yesOrNo: Bool)
通过以下方法将构造的timer绑定到NSRunLoopCommonModes上:
RunLoop.current.add(timer, forMode: RunLoopMode.commonModes)
这样timer在tableview滑动中就不会暂停了。
当然这样做也不是100%能解决问题,有时timer计时不准确。具体的解决方法可以参考这个:
http://blog.csdn.net/martin_liang/article/details/40783057
但是像我这样做动画、对时间精确度要求不高的,倒是可以用这个方法解决问题。
阅读全文
1 0
- iOS 解决NSTimer在UITableView滑动中暂停问题
- 解决NSTimer在TableView滑动中暂停问题
- 避免滑动tableView时NSTimer 暂停
- ios UITableView 滑动 headerView footerView 跟随问题
- 解决React Native中ListView控件在ios上不能滑动的问题
- iOS中uitableview滑动删除添加按钮
- IOS中NSTimer消除线程阻塞问题
- 有关IOS中NSTimer的问题
- iOS开发中解决UIScrollView滚动时NSTimer失效的问题
- 解决overflow: auto在Ios中滑动不流畅
- iOS开发中解决滑动页面时候卡顿掉帧问题
- iOS UITableView滑动时NSTime停止重复利用RunLoop解决
- 解决ListView在ScrollView中滑动冲突的问题
- 解决ListView嵌套在ScrollView中滑动冲突问题
- 解决在angular 中swiper 不能滑动问题
- 解决iOS UITableView reloadData 时闪屏的问题
- UITableView的滑动问题
- iOS开发笔记>> 以 schedcledTimerWithTimerInterval…的方式触发的 timer,在滑动页面上的列表时,timer 会暂停回调,为什么?如何解决?
- 面向切面的 Spring —— 如何在 XML 中声明切面?
- 如何创建一个基本JQuery的插件
- SVN
- Linux Centos7安装Oracle12c第二版本
- Html5前端图片压缩
- iOS 解决NSTimer在UITableView滑动中暂停问题
- 获取json数据和ImageLoader图片显示到listview
- HDU
- 《一个人的朝圣》读后感
- 阿里云Centos下安装mysql找不到mysql-sever安装包的解决方案
- 网狐IOS端微信登录遇到的问题
- 【51nod 1085】背包问题(0-1背包模板)
- 如何同步本地代码到SVN服务器
- 1、java容易忘记的基础语法知识