在滚动时定时器发生停止问题的解决

问题:使用方法:“+scheduledTimerWithTimeInterval:...”在界面上加入一个定时器,用来显示活动倒计时,但是在界面上进行滚动操作时却发现timer暂停,倒计时停止。

分析:通过研究发现,发现NSTimer与RunLoop有关,一种mode有且只有一个loop,在更换mode的时候,当前的loop会自动停止并重启另一个loop。而当我们进行滚动操作时,为了保证操作的流畅性,会自动将NSDefaultRunLoopMode(kCFRunLoopDefaultMode)切换成UITrackingRunLoopMode,这也就是出现上述问题的原因。而影响scrollView滚动的mode是NSDefaultRunLoopMode(kCFRunLoopDefaultMode),而这种mode是可以定制的。

解决:将Timer添加到NSRunLoopCommonModes(kCFRunLoopCommonModes),这样问题就解决了。

代码如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容