私の知る限りCGContextSetShadowWithColor、影を描くなどのコアグラフィックを使用できます。ただし、CALayerを使用してシャドウを表示することもできます。
質問 :
それらの2つの違いは何ですか。コアグラフィックを使用して描画する場合、またはCALayerを使用してジョブを実行する場合を決定するルールはありますか?
私の知る限りCGContextSetShadowWithColor、影を描くなどのコアグラフィックを使用できます。ただし、CALayerを使用してシャドウを表示することもできます。
質問 :
それらの2つの違いは何ですか。コアグラフィックを使用して描画する場合、またはCALayerを使用してジョブを実行する場合を決定するルールはありますか?
を使用するCoreAnimation方が常に優先されると言わざるを得ませんCoreGraphics。なぜなら、それはより高レベルであり、影を描くことの低レベルの詳細を抽象化するからです。(これにより、Appleはコード構文を損なうことなくシャドウ描画を最適化できる場合もあります)。
ただし、とにかくオーバーライドしている場合がありdrawRect:、ビューのレイヤー全体ではなく、シャドウを非常に特殊に使用します。CoreGraphicsここでシャドウを使用することをお勧めします。
最後にもう1つ、CoreAnimationグラデーションはレンダリング時にはるかに高速です。私の言葉を借りてください。で使用したところ、グラデーションUITableViewCellを使用した場合とは対照的に、スクロールのパフォーマンスが大幅に向上しました。ただし、これには代償が伴います。少し見栄えが悪いです。CoreGraphics