29、[ iOS ] 定时器和UIScrollView的拖动事件冲突解决 RunLoop

1、当界面同时存在有定时器和UIScrollView时,比如:一个界面顶部是一个由定时器控制的无限轮播图,下面是一个UIScrollView,这时你如果拖动下面UIScrollView,定时器就会暂停,等UIScrollView的拖动事件结束后定时器才会接着执行。
2、其实原因是事件在 RunLoop 中处理的时候是有优先级的,滚动 scollView 的事件优先级比 timer 的高,所以滚动 scrollView 的时候 timer 不会执行,所以可以使用下面的方法提高 timer 在事件处理中的优先级为最高。

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

更正:上面这种解释错误的,但解决代码没有问题。感谢VV木公子的提醒
原因请看:
Mitchell的文章《iOS - RunLoop 深入理解》
http://www.jianshu.com/p/edbe946c8a11

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

相关阅读更多精彩内容

  • runtime 和 runloop 作为一个程序员进阶是必须的,也是非常重要的, 在面试过程中是经常会被问到的, ...
    SOI阅读 21,987评论 3 63
  • 在现在很多app中,我们经常会看到轮播图,轮播广告等等,比如淘宝、京东商城app,他们都可以定时循环地播放广告、图...
    皮皮瑞阅读 5,721评论 0 4
  • Run loop 剖析:Runloop 接收的输入事件来自两种不同的源:输入源(intput source)和定时...
    Mitchell阅读 14,281评论 17 111
  • runtime 和 runloop 作为一个程序员进阶是必须的,也是非常重要的, 在面试过程中是经常会被问到的, ...
    made_China阅读 4,949评论 0 7
  • 晚自习W同学让我俩互夸对方 我便说:“你长得好漂亮。” 一般人会说你也好漂亮之类的来回复对方对不对,谁知道这丫的来...
    豆得儿得儿得儿阅读 1,076评论 0 0

友情链接更多精彩内容