定时器和UIScrollView的拖动事件冲突解决 RunLoop

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

一、当界面同时存在有定时器和UIScrollView时,好比:一个界面顶部是一个由定时器控制的无限轮播图,下面是一个UIScrollView,这时你若是拖动下面UIScrollView,定时器就会暂停,等UIScrollView的拖动事件结束后定时器才会接着执行。

二、其实缘由是事件在 RunLoop 中处理的时候是有优先级的,滚动 scollView 的事件优先级比 timer 的高,因此滚动 scrollView 的时候 timer 不会执行,因此能够使用下面的方法提升 timer 在事件处理中的优先级为最高。oop

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

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

相关文章
相关标签/搜索