5

アプリケーションが一貫して見えるように、Apple の CurveEaseInOut と同じように動くように見えるアニメーションを作成したいと考えています。問題は、この特定のアニメーションが UIView animate メソッドを使用できないことです。フレームごとに手動で位置を操作する必要があります。たとえば、時間 T を取得し、その時点の点の中心 C を出力する必要があります。線形の関係 (C = T など) を使用するのではなく、Apple のように緩和したり緩和したりしたいと考えています。

Apple がそのアニメーション オプションに使用している曲線方程式はどれですか?

曲線は次のように見えると思います: (これはthis questionから取得したものです)

ここに画像の説明を入力

その場合、3 次エルミート スプライン方程式を正しい定数で微調整するだけで、同じ結果が得られるはずです。問題は、Apple が使用する定数はどれかということです。

4

2 に答える 2

3

炭酸 (H2CO3) が指摘したように、問題は Apple がどの制御点を使用しているかです。

Core Animation のデフォルトのタイミング関数と同じであると仮定すると、ドキュメントからコントロール ポイントを取得できます。

kCAMediaTimingFunctionDefaultほとんどのアニメーションでデフォルトとして使用されるタイミング関数を指定します。コントロール ポイント [(0.0,0.0)、(0.25,0.1)、(0.25,0.1)、(1.0,1.0)] を使用して、ベジエ タイミング関数を近似します。この定数を使用することで、アニメーションが現在のデフォルトのタイミングを使用するようになります。


編集

カスタム アニメーションについて言及されているので、Rob Napier による Animation Custom Layer Properties のプレゼンテーションをご覧になることを強くお勧めします。カスタム アニメーションを実行しながら、コア アニメーションの恩恵を受けることができます。(プレゼンテーション全体をご覧ください。コア アニメーションの多くを理解するのに役立ちます)

于 2013-05-03T19:25:20.737 に答える
1

Simon Whitaker には、オンラインの JavaScript コンフィギュレータがありCAMediaTimingFunctionます。

彼のコードは、次の制御点をダンプします。

linear        (0.00, 0.00), (0.00, 0.00), (1.00, 1.00), (1.00, 1.00)
easeIn        (0.00, 0.00), (0.42, 0.00), (1.00, 1.00), (1.00, 1.00)
easeOut       (0.00, 0.00), (0.00, 0.00), (0.58, 1.00), (1.00, 1.00)
easeInEaseOut (0.00, 0.00), (0.42, 0.00), (0.58, 1.00), (1.00, 1.00)
default       (0.00, 0.00), (0.25, 0.10), (0.25, 1.00), (1.00, 1.00)
于 2013-09-29T18:15:31.097 に答える