定時器和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

相關文章
相關標籤/搜索