問題:使用方法:“+scheduledTimerWithTimeInterval:...”在界面上加入一個定時器,用來顯示活動倒計時,但是在界面上進(jìn)行滾動操作時卻發(fā)現(xiàn)timer暫停括享,倒計時停止。
分析:通過研究發(fā)現(xiàn)询件,發(fā)現(xiàn)NSTimer與RunLoop有關(guān)稚配,一種mode有且只有一個loop,在更換mode的時候柏副,當(dāng)前的loop會自動停止并重啟另一個loop勾邦。而當(dāng)我們進(jìn)行滾動操作時,為了保證操作的流暢性割择,會自動將NSDefaultRunLoopMode(kCFRunLoopDefaultMode)切換成UITrackingRunLoopMode眷篇,這也就是出現(xiàn)上述問題的原因。而影響scrollView滾動的mode是NSDefaultRunLoopMode(kCFRunLoopDefaultMode)荔泳,而這種mode是可以定制的蕉饼。
解決:將Timer添加到NSRunLoopCommonModes(kCFRunLoopCommonModes),這樣問題就解決了换可。
代碼如下: