皆さんこんにちは。
CATransition
本質的に明示的なアニメーションに変換できるかどうかは誰にもわかりませんか? つまり、オブジェクトを作成し、そのオプションを設定できるようにCABasicAnimation
する必要があります(オブジェクトの作成と、一連のプロパティをアニメーション化するために実際に必要な時点との間に起こっていることをアニメーション化しようとしています。CATransition
duration
timingFunction
delegate
type
fillMode
removedOnCompletion
CATransition
を使用している場合、アニメーションがレイヤーに追加されるまで何もアニメーション化されず、 toValue/fromValue の間CABasicAnimation
で指定されたプロパティのみがアニメーション化されるため、これを簡単に行うことができます。animationWithKeyPath
ただし、プロパティの変更をキャプチャするためのアニメーション オブジェクトを作成した瞬間CATransition
に発生するようです。[CATransaction begin]
(上記のように)できるようにする必要があるのは、CATransition
オブジェクトを作成し、上記のオプションを設定してから、実際に使用する必要があるまでそれを片付けることです。その時点で、アニメーション化する必要がある実際のプロパティを変更します、次にそれを適切なCALayer
viaに追加しaddAnimation
ます。
これを安全に行う方法を知っている人はいますか?
PS: これは、私のアプリケーションが、アニメーションの依存関係を処理するカスタム アニメーション キューイング システムに大きく依存しているためです。たとえば、方向の変更が発生する前に特定のものをアニメーション化する必要があるため、10 個までのアニメーションをキューに入れることができます。これらのアニメーションはすべて発生し、方向変更のアニメーション オブジェクトも発生しますが、方向変更のアニメーションは、前のアニメーションが発生するまで起動しません完了したかどうかによって異なります。ちなみに、CABasicAnimation
キューに入れられたアニメーション オブジェクト クラスにうまくまとめることができます。CATransition
少し違う獣のようです。したがって、上記の質問-アニメーションキューオブジェクトを安全に作成し、一連のアニメーションをセットアップできる必要がありますCATransition
オプション、それをキューに入れ、実際に後で実行させます (その間、あらゆる種類のことが起こっています) 依存関係がすべて満たされたとき (この場合、CATransition
向きの変更アニメーションに使用されています)。
ありがとう、 -ケベン・ティッピング