0

このCAKeyframeアニメーションパスを実行するオブジェクトがある場合(これは、iPhoneの上部領域にある楕円形です。

 UIBezierPath *trackPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(20, 100, 280, 150)];

ここで、このパスが移動するときはいつでも、ある時点での現在の位置と画面の下部のあるポイントからスムーズなパスを作成したいとします。

ちなみに、パスができたら、現在のCAKeyframeAnimationを停止して、このパスを新しいCAKeyframeアニメーションに追加できると思いますが、これが正しくない場合は、ここでもポインターを指定できます。

4

1 に答える 1

1

だから私は自分に言いました「自分で……誰も編集したり、重複していると言ったりしたくないので、自分で答えなければならないようです……」

だから私はこれを行うためのより簡単なまたは既成の方法を望んでいました。私が見つけたものから、簡単な方法はありません。手順は次のようになります。

  1. アニメートされたレイヤーの現在の位置を取得します
  2. すべての独自のコードで自分自身を計算する素敵な滑らかな曲線
  3. このパスをアニメーションに追加してアニメーション化します。

ベジェ曲線の計算に関しては、ポイントをプラグインできるクラスまたはコードを探しています。UIBezierクラスが曲線を生成するために2つの制御点が生成されます。

私の場合、上記の質問された形状の「外」で決定されたポイントのみをアニメートするので、準備した滑らかな曲線を作成できます。

楕円形からのスムーズな出口をアニメーション化することは非常に複雑であり、私の場合はそれだけの価値はありません。だから私はそれをしていません。

于 2013-01-31T11:49:24.713 に答える