新しい CATransition を実装したいと思います。
たとえば、この効果を実行したいとしましょう。一方の面にソース イメージの一部があり、もう一方の面に宛先イメージの一部がある両面レイヤーの m 列の配列です。各レイヤーは、x 軸を中心に 180 度回転して反対側を表示します。そのようなロジック (アニメーション化された CALayers) を CATransition に使用できますか?
新しい CATransition を実装したいと思います。
たとえば、この効果を実行したいとしましょう。一方の面にソース イメージの一部があり、もう一方の面に宛先イメージの一部がある両面レイヤーの m 列の配列です。各レイヤーは、x 軸を中心に 180 度回転して反対側を表示します。そのようなロジック (アニメーション化された CALayers) を CATransition に使用できますか?
私はあなたがこれを行うことができるとは思わない. CATransition
組み込みのタイプとサブタイプを超えてカスタマイズする唯一の方法は、 CIFilter
(iOS 5.0 または OSX 10.5 から) を使用することです。CIFilter
また、組み込みフィルターのチェーンと構成を超えてカスタムを作成する唯一の方法は、ドキュメントによると、次のとおりです。
以下を作成するために CIFilter をサブクラス化できます。
- 2 つ以上のビルトイン Core Image フィルターをチェーンすることによるフィルター (iOS および OS X)
- 作成した画像処理カーネルを使用するカスタム フィルター (OS X のみ)
そのため、CALayer アニメーションに基づいてこれを行うことはできません。OSX では、これはいくつかの数学作業で管理できるはずですが、CALayers アニメーションを直接使用することはできません。iOS では、これは単純に不可能です。
CATransition を実行する代わりに、レイヤーを直接使用して同じ効果を実現できますが、UI コードに簡単に統合できないことは明らかです。
あなたが説明するようなトランジション効果を書きましたが、それは CATransition ではありませんでした。代わりに、ビューの遷移を処理する独自のメソッドを作成し、それを呼び出しました。
トランジションでは、2 つのビューを垂直方向のスライスにカットし、Y 軸を中心にスライスを回転させるアニメーションを実行しました。左端のスライスから始めて右に作業すると、見栄えの良いカスケード効果が作成されます。CAAnimationGroup オブジェクトにかなりの作業が必要で、各ストリップのアニメーションに beginTime を使用してアニメーションの開始位置をずらしました。その 1 つの遷移アニメーションには、約 5 ページのコードが必要でした。