で説明されているものと同様に、ビューのアニメーションのようなジグルを行うことに興味があります
ios-icon-jiggle-algorithmおよびerror-in-button-jiggle-algorithm
ただし、これらのソリューションは時不変のアニメーションを実装します。つまり、アニメーションの開始前にアニメーション シーケンスが固定され、まったく同じアニメーションが何度も実行されます。これらの場合、回転角度は事前に計算されます。
私がやりたいのは、アニメーションが時間とともに変化する時変アニメーションです。前の例に関しては、時間ベースの関数に応じて回転角度を変化させたいと考えています。
実生活で例えると、ゼリーの塊を動かしていると想像してください。アニメーションの開始時にゼリーを 1 回たたくと、ゼリーが揺れ始め、時間の経過とともに揺れの大きさが徐々に小さくなり、まったく揺れなくなります。
私の理解では、アニメーション ブロックに時変値を挿入することはできません。可能な唯一の方法は、固定アニメーションの文字列をios-multiple-animation-blocksに従って連鎖させることです。減少するアニメーション値の 3 つまたは 4 つのブロックをつなぎ合わせると、許容できる効果が得られるはずです。
それで、UIView アニメーションで私がやりたいことをする方法があれば? または、別のアプローチに従う必要がありますか?
[編集]
時変の意味をもう少し明確にするために、アニメーション化されたプロパティをアプリオリに事前計算することなく、アニメーション化されたプロパティの値を関数時間として指定できるようにしたいと考えています。そして、(おそらく)その場で関数を変更できるようにすることです。具体的な例として、次のような関数 f(t) が必要になる場合があります。
For t<0 f(t) = 0
For t>0 and t<1 f(t) = 1-t
For t>1 f(t)= 0
実際には、af(t) のより適切な表現は次のようになります。
f(t) = A(t)sin(t)
[編集#2]
いくつかの検討の結果、理想的には時変ビュー アニメーションを指定できるようにすることは、私がやりたい効果であると判断しましたが、実用的には、それをアプリに適用すると、ユーザーは私のプログラミングの素晴らしさに気付かないでしょう。だから私はそれを偽造して、事前に計算され、複数回トリガーされるキーフレームアニメーションを使用します.