4

特定の によって駆動され、通常は単独で実行される複雑なアニメーションがありCAMediaTimingFunctionます。これはうまくいきます。

ここで、スライダーやジェスチャ認識エンジンなどの外部値を使用して、同じアニメーションの時間 (ライン) を制御したいと考えています。つまり、「クロック」でタイムラインを駆動するのではなく、スライダーを動かしたいので、スライダーを特定の値に設定してアニメーションを「フリーズ」させて前後にスクラブできます。

これは可能ですか?もしそうなら、どのように?

4

1 に答える 1

-1

それは可能です(そして非常に簡単です)が、私は実験として(ピンチジェスチャ認識エンジンによって駆動される複雑なアニメーションのために)これを試しただけなので、この解決策で十分かどうか聞いてみたいです:

アニメーションの速度を 0 に設定し、時間オフセットをジャンプ先の時点に設定する必要があります。

CABasicAnimation* animation = [CABasicAnimation ...];
animation.speed = 0;
animation.duration = 1;
animation.timeOffset = 0.5;

アニメーションを 0.5 秒後のポイントにジャンプさせます。

CAAnimation オブジェクトをレイヤーに追加した後は操作できないため、オフセットが変更されるたびに新しいアニメーションを追加する必要があります (古いものを削除することを忘れないでください ;)。

于 2011-10-25T11:31:26.343 に答える