2016-04-15 6 views
2

iOSの石英コアフレームワークのCADisplayLinkを使用するタイミング。 NSTimerとCADisplayLinkは同じですか? CADisplayLinkの正しい使い方は何ですか?私たちは、UIViewのiOSのCADISPLINK iOSの使用方法

答えて

3

臆面もなくコピーの描画を同期させたい/ the official documentationを貼り付ける:

A CADisplayLinkオブジェクトは、ディスプレイのリフレッシュレートにその図面を同期するようにアプリケーションを可能にするタイマーオブジェクトです。

アプリケーションは新しい表示リンクを作成し、ターゲットオブジェクトと、画面の更新時に呼び出されるセレクタを提供します。次に、アプリケーションは表示リンクを実行ループに追加します。

表示リンクが実行ループに関連付けられると、画面の内容を更新する必要があるときにターゲットのセレクタが呼び出されます。ターゲットは、表示リンクのタイムスタンププロパティを読み取って、前のフレームが表示された時間を取得できます。たとえば、ムービーを表示するアプリケーションは、タイムスタンプを使用して、次に表示されるビデオフレームを計算することがあります。独自のアニメーションを実行するアプリケーションでは、タイムスタンプを使用して、表示されるオブジェクトが今後のフレームに表示される場所と方法を判断できます。 durationプロパティはフレーム間の時間を提供します。アプリケーションのこの値を使用して、ディスプレイのフレームレート、次のフレームが表示されるおよその時間を計算し、次のフレームが表示されるように準備されるように描画動作を調整することができます。

アプリケーションでは、一時停止プロパティをYESに設定して通知を無効にすることができます。また、アプリケーションが指定された時間内にフレームを提供できない場合は、より遅いフレームレートを選択することもできます。より遅いが一貫したフレームレートを持つアプリケーションは、フレームをスキップするアプリケーションよりも、ユーザーにとってスムーズです。 frameIntervalプロパティを変更すると、フレーム間の時間を長くすることができます(見かけのフレームレートを下げることができます)。

アプリケーションで表示リンクが終了したら、invalidateを呼び出してすべての実行ループからアプリケーションを削除し、それをターゲットから切り離す必要があります。

CADisplayLinkをサブクラス化しないでください。

関連する問題