原則として、非同期レンダリングを描画するUIView

原則を描きます

フローチャート初めて目

setNeedsDisplay UIViewのメソッドを呼び出した後、実際には、描画作業の現在のビューが実現しなかったが、チャンスの後に抽選で働いて、なぜそれのタイミングの後ドローで働いてますか?
UIViewのはsetNeedDisplayを呼び出すとき、システムがします現在のレイヤーの上に汚れたマークを入れて同等の対応する層のsetNeedsDisplay方法を表示するために呼び出す、その後、現在の実行ループが終わりに近づいたときのCALayerの表示方法を呼び出し、実際にそれらの現在のビューの流れ、そのビューに引き込まれます現在の実行ループの終わり場合のみ開始され、タイミングを描く
エージェントが応答しない場合、実装の内部のCALayer表示方法は、まず、delegete応答表示方法の層かどうかを決定するであろうがその、もし応答システムの流れに引き込まれます実際には、これはUIViewの原則の描画を構成し、私たちのためのインタフェースの非同期ドローを提供します

フローシステムを描きます

drawInContext方法のない層が存在しない場合に実現場合は、最初のCALayerはバッキングストア(CGContextRef)内に作成、我々は一般のdrawRectに関連して、現在のコンテキストは、それらをスタックスタックの先頭を取得することができます。そして、プロキシがあるかどうかを判断する層、プロキシは、呼び出されます代理店はdrawLayerのdelegeteを呼び出します。そして、適切なタイミングでコールバックメソッドを与えるシステム内で起こっているinContext方法は、それは、ビューは、その後のdrawRectメソッドによって描かれたいくつかの他の作業を行うことができますのdrawRectメソッドです。 GPUへのCALayerアップロードバッキングストア(最終ビットマップ)を持つ二つの枝のどんなに。描画処理システムのそれから終わり。

非同期レンダリング

layer.delegateに私たちに穴を与えたに準拠またはdisplayLayerメソッドを実装する場合どのように非同期システムに基づいて、実際には、それをレンダリングすることは、我々は、非同期の描画過程における非同期レンダリングプロセスに入ることができます

これは、ビットマップをdelegeteするビットマップを生成するための責任がある
ビットマップ属性layer.content変更の値として提供される
メカニズムを理解することとによって描かれた非同期のタイミングチャートを処理します

おすすめ

転載: www.cnblogs.com/Lanht/p/11706949.html
おすすめ