「ターンベース」の方法でアニメーション化する多くの CALayer がある状況があります。これらの CALayer のそれぞれの位置をアニメーション化しますが、持続時間はまったく同じです。これらのすべての CALayer のアニメーション化が完了すると、新しい「ターン」が開始され、位置の変化が再びアニメーション化されます。
全体的なアイデアは、位置間の線形補間により、一定の速度で、状態間のターンベースの遷移がリアルタイムのアニメーションのように見えるということです。ただし、これは多くの異なる CALayer で実現するのは困難です。
CAAnimationGroup は、単一の CALayer でアニメーションをグループ化するために使用されます。しかし、同じ期間を持つはずのアニメーションを複数のCALayerでグループ化する簡単な解決策はあるのでしょうか?
ケビン・バラードの質問への返信を含むように編集
私の問題はこれにあります。CALayer ごとにアニメーションを作成し、それらを NSArray に入れています。個々のアニメーションが終了したというコールバックを取得したら、それを NSArray から削除します。空になったら、もう一度すべてのアニメーションを作成します。
いくつかのレイヤーを使用すると、すべてのアニメーションが終了してから新しいアニメーションが開始されるまでに顕著な遅延が生じます。
これらのすべてのアニメーションを 1 つのアニメーションにグループ化できれば、アニメーション間の遅延なしで、より多くのレイヤーをアニメーション化できると思います。これにより、連続したアニメーションの錯覚が損なわれることはありません。