* 中国語でコア アニメーションと訳されるコア アニメーションは、非常に強力なアニメーション処理 API のセットです。これを使用すると、非常に素晴らしいアニメーション効果を作成でき、多くの場合、結果は 2 倍になります。半分の努力。つまり、非常に強力な機能を少ないコードで実現できます。
* CoreアニメーションはMac OS XおよびiOSプラットフォームで使用できます。
* Boss Qiao は、2007 WWDC カンファレンスで Core Animation の力を個人的にデモンストレーションしました: クリックしてビデオを表示します
* Core Animation のアニメーション実行プロセスはバックグラウンドで動作し、メイン スレッドをブロックしません。
* Core Animation は UIView ではなく CALayer に直接作用することに注意してください。
トップに戻る
1. それを使用するには、まず QuartzCore.framework を追加し、メイン ヘッダー ファイル
2 CAAnimation オブジェクトを初期化し、アニメーション関連のプロパティをいくつか設定します
3. CALayer の addAnimation:forKey: メソッドを呼び出して CAAnimation オブジェクトを CALayer に追加し、アニメーションの実行を開始できるようにします
4. アニメーションを停止しますCALayer アニメーションの RemoveAnimationForKey: メソッドを呼び出して CALayer を実行します
トップに戻る
* 前の説明からわかるように、アニメーションを実行するには、CAAnimation オブジェクトを初期化する必要があります。
* 実際、通常の状況では、CAAnimation のさらに多くのサブクラスを使用します。 したがって、CAAnimation の継承構造を大まかに見てみましょう。
黒い線は継承を表し、黒いテキストはクラス名を表します。白いテキストは属性を表します。その中のプロトコルとしてCAMediaTimingがあります。
* CAAnimation はすべてのアニメーション クラスの親クラスですが、直接使用することはできません。そのサブクラスを使用する必要があります
* 共通のプロパティは次のとおりです:
1> アニメーションの継続時間
2>repeatCount: アニメーションの繰り返し数
3>timingFunction: アニメーションのリズムを制御しますtimingFunction のオプションの値は次のとおりです:
kCAMediaTimingFunctionLinear (リニア): 一定の速度、比較的静的な感覚を与えます
プロキシ オブジェクトが実装する必要があるメソッドは次のとおりです: (これらのメソッドは特定のカテゴリで定義されています)
1 @interface NSObject (CAAnimationDelegate)2 // 动画开始执行的时候触发这个方法3 - (void)animationDidStart:(CAAnimation *)anim;4 5 // 动画执行完毕的时候触发这个方法6 - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;7 @end
*上記 紹介されたすべてのプロパティは CAAnimation に属しているため、CAAnimation のすべてのサブクラスでそれらを使用できます。
2. その他
* したがって、残るアニメーション クラスは CABasicAnimation、CAKeyframeAnimation、CATransition、CAAnimationGroup の 4 つだけです
トップ
4. CAPropertyAnimation
* NSString 型の keyPath 属性を持っています。 keyPath という名前の CALayer の特定の属性を指定し、CALayer のこの属性の値を変更して、対応するアニメーション効果を実現します。たとえば、@"position" を keyPath として指定すると、CALayer のposition 属性の値が変更されて、翻訳アニメーション効果が得られます
* したがって、CAPropertyAnimation のサブクラス オブジェクトを初期化した後、最初に keyPath を設定し、何が必要かを把握する必要があります。 CALayer のどのプロパティで、どのようなアニメーションが実行されますか?
著作権に関する声明: この記事はブロガー http://www.zuiniusn.com によるオリジナルの記事であり、許可なく複製することはできません。ブロガー。