5

UIBezierPath 上のポイント A からポイント B に移動するレイヤーがあります。CAAnimation と UIBezierPath を参照している多くのサンプルを見つけました。しかし、指定したポイントからベジエ パス上の別のポイントにのみレイヤーを移動する必要があります。

ここに画像の説明を入力

任意の提案をいただければ幸いです。

ありがとう

4

3 に答える 3

3

これが役立つことを願っています。

UIBezierPath *trackPath = [UIBezierPath bezierPath];
.
.
.
CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
anim.path = trackPath.CGPath;
anim.repeatCount = 1;
anim.duration = 2.0;
[layerToAnimate addAnimation:anim forKey:@"pathGuide"];
于 2015-05-20T12:28:21.883 に答える
2

ベジェ パスが円または半円の場合は、パスをスキップして、代わりに大きな正方形のレイヤーにポイントを追加できます。その大きな正方形のレイヤーの中心から一定の距離になるようにポイントを設定します。次に、移動に必要な角度に関係なく、中心を中心にz軸上で大きなレイヤーを回転させることができます。他に何をする必要があるのか​​ 正確にはわかりませんが、物事を少し単純化するようです。

于 2013-01-15T05:53:26.947 に答える
1

私はこのようなことをして、このチュートリアルを見つけようとしていました。特定のパスをたどる方法を示しています。車 (CALayer) と UIBezierpath をレース トラックとして使用し、次の順序で解決します。

車がたどるパスを定義します (この場合は BezierPath)。トラックを定義する黒い線を描きます。(N/A) トラックの白い破線の中心線を描く。(N/A) 車を定義するレイヤーを作成します。(あなたのレイヤー) パスに沿って車をアニメーション化します。(あなたが尋ねたもの!)

ここで参照投稿を確認できます: http://nachbaur.com/2011/01/07/core-animation-part-4/

ソースコードはこちらからダウンロードできます: http://cdn5.nachbaur.com/wp-content/uploads/2011/01/CALayerAnimTest.zip?25881d

お役に立てれば!

よろしく、

ホルヘ。

于 2012-11-14T22:54:19.173 に答える