3

私は iPhone 開発に不慣れで、現在、Silverlight 用に開発したグラフ作成ツールを再作成しようとしています。

現在、グラフ内のバーを表す長方形を「塗りつぶす」ためにグラデーションを使用しています。このグラデーションをアニメーション化して、ユーザーがグラフ内のバーに触れると色が変わるようにすることはできますか?

Apple が提供するコア アニメーション ガイドを調べましたが、グラデーションを対象とするプロパティが見つかりません。トランジションを使用して 2 つの四角形の間をフェードすることができると思います。そのうちの 1 つには開始グラデーションがあり、2 つ目は「タッチ」バージョンですが、これは明らかに、余分なパフォーマンス オーバーヘッドを想定して各バーに複数の四角形オブジェクトを描画することを意味します。

何か案は?

4

1 に答える 1

11

はい、確かに Core Animation でグラデーションをアニメーション化できます。

3.0 で登場した CAGradientLayer クラスには、グラデーションをレイヤーにレンダリングし、カラーとカラーストップの変更をアニメーション化するための優れた API があります。

少し前に、このクラスに関する投稿を行いました。下部にリンクされているサンプル コードもいくつかあります。

サンプルでは、​​CABasicAnimation を作成してグラデーションをアニメーション化していますが、新しい色の配列をグラデーション レイヤーの colors プロパティに渡すだけで、変更を暗黙的にアニメーション化することもできます。理由がない限り、暗黙的なアニメーションを使用してください。

それを確認して、アニメーション化しようとしている UI に固有の質問がある場合はお知らせください。

于 2009-12-01T06:36:43.903 に答える