2016-04-15 64 views
2

什麼時候使用iOS的石英核心框架的CADisplayLink。 NSTimer和CADisplayLink是否相同?什麼是正確使用CADisplayLink ?.我們要的UIView的的iOS什麼是CADisplayLink iOS

回答

3

無恥複製繪畫同步/粘貼the official documentation

一個CADisplayLink對象是一個計時器對象,它允許您的應用程序其繪圖同步到顯示器的刷新速率。

您的應用程序會創建一個新的顯示鏈接,提供一個目標對象和一個在屏幕更新時調用的選擇器。接下來,您的應用程序將顯示鏈接添加到運行循環中。

一旦顯示鏈接與運行循環相關聯,當屏幕內容需要更新時,將調用目標上的選擇器。目標可以讀取顯示鏈接的timestamp屬性以檢索顯示前一幀的時間。例如,顯示電影的應用程序可能會使用時間戳來計算下一個要顯示的視頻幀。執行自己的動畫的應用程序可能會使用時間戳來確定顯示的對象在即將到來的幀中的顯示位置和方式。持續時間屬性提供了幀之間的時間量。您可以在應用程序中使用此值來計算顯示器的幀速率,下一幀將顯示的大致時間,並調整繪製行爲,以便及時準備下一幀以供顯示。

您的應用程序可以通過將paused屬性設置爲YES來禁用通知。另外,如果您的應用程序無法在所提供的時間內提供幀,您可能需要選擇較慢的幀速率。與跳過幀的應用程序相比,具有較慢但一致幀頻的應用程序對用戶來說會更平滑。您可以通過更改frameInterval屬性來增加幀之間的時間(並降低明顯的幀速率)。

當您的應用程序使用顯示鏈接完成時,它應該調用invalidate從所有運行循環中將其刪除,並將其從目標中解除關聯。

CADisplayLink不應該被分類。