在UIViewController
中,我有一個NSTimer
計劃每隔1秒觸發一次,使用scheduledTimer
方法,所以我可以每秒在視圖中更新一個UILabel
。但問題是,NSTimer
開火似乎被延遲,只要我在UIView
內的MKMapView
周圍搖晃。所以延遲導致UILabel
不是統一更新,這是不好看的。由MKMapView
平移導致的延遲是否會佔用太多資源?我如何安排NSTimer
,以便不會有任何延遲,但我平移MKMapView
? (但是,請注意,我沒有在某種後臺線程上安排NSTimer
,它在主線程中。)謝謝。NSTimer似乎被MKMapView平移減慢了?
1
A
回答
3
如果您使用scheduledTimerWithTimeInterval(...)
來創建您的計時器,它將被添加到模式爲NSDefaultRunLoopMode
的當前runloop。計時器不會在您的應用程序忙於事件跟蹤時觸發,即如果您在UIScrollView中滾動,或者如果您與UI進行任何其他交互。
如果您使用NSRunLoopCommonModes
作爲模式,則計時器將在您與用戶界面進行交互時觸發,您可以創建一個未計劃的NSTimer並將其自動添加到runloop中。
let timer = NSTimer(timeInterval: 1.0, target: self, selector: Selector("timerFired:"), userInfo: nil, repeats: true)
NSRunLoop.currentRunLoop().addTimer(timer, forMode: NSRunLoopCommonModes)
如需進一步信息,問題NSDefaultRunLoopMode vs NSRunLoopCommonModes包含了不同runloop模式一個很好的解釋。
相關問題
- 1. 動畫過快。似乎無法減慢
- 2. C++ cin.getline似乎被跳過了
- 3. const_cast似乎被C++模板忽略了?
- 4. Javascript setInverval似乎很慢?
- 5. SplFixedArray似乎比陣列()慢
- 6. JSFiddle似乎壞了
- 7. Python比D快嗎? IO操作似乎減慢了很多D ...發生了什麼?
- 8. Hadoop的流:減速似乎並沒有被運行時,mapred.reduce.tasks = 1
- 9. Oracle:idle_time似乎被忽略
- 10. InternalsVisibleTo似乎被忽略
- 11. memcpy似乎被卡住
- 12. Hibernate @Enumerated似乎被忽略
- 13. RadioList似乎不被渲染
- 14. QGraphicsItem setTransformOriginPoint似乎被忽略
- 15. INSTALL_BASE似乎被忽略Makefile.PL
- 16. NSURLSessionTaskPriority似乎被忽略?
- 17. NSFetchRequest「returnsDistinctResults」似乎被忽略
- 18. Facebook.getAuthResponse()似乎被打破
- 19. 表似乎被覆蓋
- 20. libmemcached - memcached_mget似乎阻止了
- 21. Bower 0.8.5似乎卡住了
- 22. Ubuntu 16.04點似乎破了
- 23. MKMapView regionWillChangeAnimated縮放還是平移?
- 24. TortoiseHg - 在Win7上似乎很慢
- 25. Android上Facebook的FriendPickerFragment似乎很慢
- 26. Redis在插入時似乎比PostgreSQL慢
- 27. NStimer設備緩慢?
- 28. Silex共享服務似乎被實例化了不止一次
- 29. FCKEditor 2.6x似乎在Chrome的底部被切斷了
- 30. javascript_expansions和stylesheet_expansions在Rails 3.1中似乎被忽略了
是否在後臺線程中設置了定時器來做計算,然後用'dispatch_async'獲取主線程來更新UI,工作? dispatch_async示例顯示在此asnwer:http://stackoverflow.com/questions/16283652/understanding-dispatch-async – Zhang 2015-04-04 13:19:52
你是如何安排計時器?如果您希望它在滾動/平移時觸發,則需要使用「NSRunLoopCommonModes」來安排它。 – dan 2015-04-04 14:00:03