CoreAnimation が iPhone シミュレーターで複数のアニメーションを連続して実行するのに問題があります。アプリケーションには、アニメーション化する多くのレイヤーがあります。これらのレイヤーはすべて、アプリケーションの UIView に関連付けられたレイヤーのサブレイヤーです。最初のサブレイヤーの位置を (明示的なアニメーション - CAKeyFrameAnimation を使用して) アニメーション化した後、animationDidStop デリゲート メソッドで次のことを行います。
- スーパーレイヤーからレイヤーを削除します
- CATransaction を開始して、他の 2 つのサブレイヤーの位置を同時にアニメーション化します。これらのレイヤーも、個々の CAKeyframeAnimations をそれぞれのレイヤーに追加して明示的にアニメーション化します。
- 次に、最初のレイヤーを別のコンテンツで再利用し、それをスーパーレイヤーの別の位置に追加します (意図的にアニメーション化されていません)。
アプリケーションを実行すると、最初のアニメーションが発生し、レイヤーが削除され、レイヤーが新しい位置に新しいコンテンツとともに追加されますが、ステップ 2 で 2 つのレイヤーのアニメーションは表示されません。興味深いことに、私はトランザクションでアニメーション化されている 2 つのレイヤーのそれぞれに対して animationDidStop 呼び出しを取得します。これらの呼び出しを取得すると、アニメーションが発生しているように見えますが、アニメーションは画面に表示されません。また、トランザクションを正しく設定していない場合に備えて、トランザクションを削除しようとしましたが、同じ結果が表示されました。
この方法で複数のアニメーションをリンクすることは可能ですか?
洞察や提案は大歓迎です。よろしくお願いします。