2

UIView の drawRect メソッドで呼び出される CGContextDrawLinearGradient と CAGradientLayer の違いは何ですか? パフォーマンスに関してどのように比較しますか? グラデーション ビューを作成するためのベスト プラクティスは何ですか? それらが互いにどのように関連しているか、そしてなぜ一方が他方よりもパフォーマンスが優れているのかについて、良い説明が本当に欲しいです.

ありがとう。

4

1 に答える 1

1

グラデーションのあるボックスが必要なだけの場合、パフォーマンスは実際には問題になりません。特定の要件に合わせて実装するのが最も簡単なものを使用する必要があります。

CAGradientLayer を追加すると、ビューのサブクラスを作成する必要がなくなり、レイヤーを既存のビューに追加するだけで済みます。フレーム サイズや C スタイルのコア グラフィックス関数について心配する必要がないため、セットアップも少し簡単になります。角を丸くしたり、影を付けたりすることも簡単にできます。

ただし、複数のグラデーション ビューが必要な場合は、サブクラスを使用することをお勧めします。そのため、新しいビューをインスタンス化することができます。

残念ながら、あなたの質問に対する明確な答えはありません。どちらも決定的に優れているわけではありません。パフォーマンスに関心がある場合は、両方を実装し、計測器を使用してテストしてください。

于 2012-05-24T15:07:08.837 に答える