問題タブ [ios-animations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - Android Animator(セット)のような iOS 複雑なアニメーション調整
Animator クラスを使用して、Android アプリでかなり複雑なアニメーションを作成しました。このアニメーションをiOSに移植したいです。できれば、Android Animator に多少似ています。私は周りを見回しましたが、私が欲しいものは何もないようです。私が得た最も近いものはCAAnimationでした。しかし残念ながら、グループに入れられた場合、すべての子デリゲートは無視されます。
Androidで作成したアニメーションから始めましょう。3 つのビュー グループ (ImageView と TextView を含む) をアニメーション化しています。ボタンごとに、ビューを左に移動し、同時にアルファを 0 にアニメーション化するアニメーションがあります。そのアニメーションの後に、同じビューを右から元の位置に移動し、アルファを 1 にアニメーション化する別のアニメーションがあります。移動アニメーションとアルファ アニメーションの他に、スケール アニメーションもあるビューが 1 つあります。すべてのビューが異なるタイミング関数 (イージング) を使用しています。アニメーション インとアニメーション アウトは異なり、1 つのビューにはスケール用の異なるタイミング関数がありますが、アルファ アニメーションと変換アニメーションは同じものを使用します。最初のアニメーションが終了したら、2 番目のアニメーションを準備するための値を設定しています。スケール アニメーションの継続時間も、移動およびアルファ アニメーションよりも短くなります。AnimatorSet (基本的にはアニメーションのグループ) 内に単一のアニメーション (変換とアルファ) を入れています。この AnimatorSet は別の AnimatorSet に配置され、アニメーションを交互に実行します (最初にアニメーション化してから)。そして、この AnimatorSet は、3 つのボタンすべてのアニメーションを同時に実行する別の AnimatorSet に配置されます。
長い説明で申し訳ありません。しかし、このようにして、私がこれを iOS に移植しようとしている方法を理解できます。これは UIView.animate() には複雑すぎます。CAAnimationGroup に配置されている場合、CAAnimation はデリゲートをオーバーライドします。ViewPropertyAnimator では、私の知る限り、カスタム タイミング関数を使用できず、複数のアニメーションを調整できません。
私がこれに何を使うことができるか考えている人はいますか?また、アニメーションのティックごとにコールバックを提供するカスタム実装でも問題ないため、それに応じてビューを更新できます。
編集
Android アニメーション コード:
編集 2
Android でアニメーションがどのように表示されるかを示すビデオを次に示します。