5

CAShapeLayer を使用していくつかの形状を生成しています。実際には、画面内のいくつかの三角形を表す 4 つの CAShapeLayers があります。CGMutablePathRef を使用してシェイプを作成し、各 CAShapeLayer のパス プロパティを設定します。各三角形を異なる方法でアニメーション化する必要があるため、三角形は異なるシェイプレイヤーにあります。

CABasicAnimation を使用し、CAShapeLayer のパス プロパティをアニメーション化して、viewcontroller でいくつかのアニメーションを実行します。

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@”path”];
animation.duration = 2.0;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animation.repeatCount = 1e100f;
animation.autoreverses = YES;
animation.fromValue = (id)initialPath;
animation.toValue = (id)newPath;
[shapeLayer addAnimation:animation forKey:@”animatePath”];

大丈夫です。形を描いてアニメーション化できます。私の問題は、これがデフォルトのアルファブレンディング(結果=(アルファ*前景)+(1-アルファ)*背景)を使用して画像をブレンドすることです。乗算ブレンド (kCGBlendModeMultiply) を使用したいのですが、CAShapeLayer の描画モードとブレンド モードを混在させる方法がわかりません。カスタム UIView を作成し、drawRect メソッドをオーバーライドしてシェイプを正常に描画しましたが、シェイプをアニメーション化できません。

CAShapeLayer のカラー ブレンディングの変更に成功した人はいますか?

4

0 に答える 0