トランジションアニメーションは、レイヤのプロパティ値を変更した影響やレイヤツリー内のレイヤの状態を数学的に補間できない場合に使用します。
この章では、Core Animationが提供するトランジションアニメーション機能について説明します。
CATransitionクラスは、Core Animationに対してCore Imageフィルタを使用したトランジション機能を提供します。これは、あるレイヤの特定のプロパティではなく、レイヤ全体に影響するCAAnimationの直接のサブクラスです。
CATransitionの新しいインスタンスは、継承したanimationクラスメソッドを使用して作成されます。これにより、表 1に示すようなデフォルトの値でトランジションアニメーションを作成します。
トランジションプロパティ | 値 |
|---|---|
| フェードトランジションを使用。値は |
| 適用なし。 |
| 現在のトランザクションのduration、またはトランザクションのdurationが設定されていない場合は0.25秒を使用。値は0.0。 |
| 線形のペーシングを使用。値は |
| 0 |
| パラメータ |
一度作成すると、定義済みのトランジションタイプの1つを使ってトランジションアニメーションを構成したり、Core Imageフィルタを使ってカスタムトランジションを作成したりできます。
定義済みのトランジションは、typeプロパティを表 2に示す定数の1つに設定して使用します。
定数 | 説明 |
|---|---|
| レイヤが表示または非表示になるとフェードする。 |
| レイヤは既存のコンテンツの一番上に徐々に重なっていく。 |
| レイヤが移動するにつれて、既存のコンテンツをすべて押し出す。 |
| トランジションのサブタイプで指定した方向に、レイヤが徐々に表示される。 |
kCATransitionFadeを除いて、定義済みのトランジションタイプを使用してトランジションの方向も指定できます。これにはsubTypeプロパティを表 3示す定数の1つに設定します。
トランジションサブタイプ定数 | 説明 |
|---|---|
| トランジションはレイヤの右側から始まる。 |
| トランジションはレイヤの左側から始まる。 |
| トランジションはレイヤの一番上から始まる。 |
| トランジションはレイヤの一番下から始まる。 |
startProgressプロパティを使用すると、アニメーション全体のうちの割合を表す値を設定することによってトランジションの開始点を変更できます。たとえば、アニメーションの工程の半分を過ぎたところでトランジションを開始するには、startProgress値を0.5に設定します。同様に、トランジションのendProgress値を指定できます。endProgressは、トランジション全体のうち、トランジションをどの地点で停止するかを示す割合です。デフォルト値は、それぞれ0.0と1.0です。
定義済みのトランジションでは希望する視覚的効果が得られない場合は、トランジションの表示に使われるカスタムのCore Imageフィルタオブジェクトを指定できます。カスタムフィルタは、入力キーkCIInputImageKeyおよびkCIInputTargetImageKeyと、出力キーkCIOutputImageKeyの両方をサポートしている必要があります。必要に応じて、フィルタはkCIInputExtentKey入力キーをサポートすることもできます。これは、トランジションが実行される領域を示す矩形を設定します。
Last updated: 2007-10-31