0

の塗りつぶしをCALayer下から上にアニメーション化しようとしていdurationます。これを達成するためのあなたの助けとアイデアが必要です。

私はこのように試しました:

CABasicAnimation *pathAnimation = 
 [CABasicAnimation animationWithKeyPath:@"fillColor"];
pathAnimation.duration = 5.0;
pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
pathAnimation.toValue = [NSNumber numberWithFloat:1.0f];
[annotation addAnimation:pathAnimation forKey:@"fillColorAnimation"];

でも変わらない……。

どんなアイデアでも大歓迎です。

皆さんありがとう。

4

2 に答える 2

5

任意の形状を下から上に水のように色が流れるように色で塗りつぶす場合、実際には 2 つ以上の形状レイヤーが必要になります。

塗りつぶしの色を配置して、シェイプ レイヤーを完全に作成します。次に、最初のシェイプ レイヤーと同じサイズの四角形を形成する 4 本の線のパスを持つ 2 番目のシェイプ レイヤーを作成します。最初に、長方形を最初の形状レイヤーの下部にある水平線にし、面積をゼロにします。2 番目のシェイプ レイヤーを 1 番目のシェーパー レイヤーのマスク レイヤーとしてインストールします。

2 番目の (マスク) レイヤーの形状を、下部の太さゼロの線から最初の形状レイヤーの境界全体に変更するアニメーションを作成します。これにより、2 番目のシェイプ レイヤーが、最初のシェイプ レイヤーの境界の下部から上部に向かって成長する四角形をアニメーション化します。2 番目のシェイプ レイヤーは最初のシェイプ レイヤーのマスクであるため、アニメーションを実行すると、最初のシェイプ レイヤーが上から下に表示されます。

アニメーションの最初からシェイプのアウトラインを配置し、シェイプの内部をアニメーションで塗りつぶす必要がある場合は、最初のシェイプ レイヤーの上にシェイプ レイヤーのコピーを追加し、シェイプをストロークするだけに設定します。 、埋めないでください。そのレイヤーを非不透明にします。シェイプのアウトラインを描画し、他のシェイプ レイヤー/マスク ペアのアニメーションがアウトラインの下の内部を埋める必要があります。

于 2012-10-20T01:50:15.673 に答える