コアアニメーション(一)
2937 ワード
1.jpg
一、Core Animation概要 Core Animationは、中国語をコアアニメーションに翻訳し、非常に強力なアニメーション処理APIのセットであり、それを使用すると非常に鮮やかなアニメーション効果を得ることができ、多くの場合、半分の仕事をすることができます.すなわち,少量のコードを用いることで非常に強力な機能を実現できる. Core Animationは、Mac OS XおよびiOSプラットフォームで使用できます. Core Animationのアニメーション実行プロセスはバックグラウンドで動作し、メインスレッドをブロックしません. 注意すべきことは、Core Animationは
二、CAAnimationの継承関係
Snip20150718_1.pngコアアニメーションのすべてのクラスは に準拠しています. CAAnaimationは抽象的なクラスで、アニメーション効果を備えていないので、そのサブクラスでアニメーション効果が必要で、 CAAnimationGroupは CATransitionは
CAPropertyAnimationも抽象クラスであり、それ自体はアニメーション効果を備えておらず、サブクラスのみであり、 CABasicAnimation をします CAKeyframeAnimation をします NSStringタイプの に達するように修正される.そのため、CAPropertyAnimationのサブクラスオブジェクトを初期化した後、keyPathを設定して、CALayerのどの属性を修正するか、どのようなアニメーションを実行するかを明らかにしなければなりません.
三、ステップの追加
(注意:Xcode 5以降はQuartzCore.frameworkフレームワークを追加したりメインヘッダファイルを導入したりする必要はありません) 1.まず 2.CAAnimationオブジェクトを初期化し、アニメーション関連プロパティ を設定します. 3.CALayerの のアニメーションの実行を開始できます. 4.CALayerの を実行することができる.
四、関連属性 duration:アニメーションの持続時間 repeatCount:繰り返し回数、 を設定することができる. repeatDuration:繰返し時間 removedOnCompletion:デフォルトはYESで、アニメーションの実行が完了するとレイヤーから削除され、グラフィックはアニメーションの実行前の状態に戻ります. とする. fillMode:現在のオブジェクトの非active期間での動作を決定します.例えば、アニメーション開始前またはアニメーション終了後の beginTime:アニメーションの遅延実行時間を設定できます.2 s遅延するには、CACurrentMediaTime()+2、CACurrentMediaTime()がレイヤーの現在の時間 に設定します. timingFunction:速度制御関数、アニメーションの動作を制御するリズムdelegate:アニメーションエージェント fillMode属性値( delegate:アニメーションエージェント、 (これらの方法は分類に定義される)
一、Core Animation概要
CALayer
であり、UIViewではないことです.二、CAAnimationの継承関係
Snip20150718_1.png
CAMediaTiming
プロトコルCAAnimationGroup
とCATransition
でアニメーション効果があります.
であり、 ,
を同時に行うことができる.
でいずれも回転場アニメーションが使用できます.CABasicAnimation
とCAKeyframeAnimation
、いくつかの
、いくつかの
keyPath
プロパティがあります.CALayerのプロパティ名をkeyPathと指定し、CALayerのこのプロパティの値を変更して、対応するアニメーション効果を達成することができます.例えば、@"position"
をkeyPath
と指定すると、CALayerのposition属性の値が
のアニメーション効果三、ステップの追加
(注意:Xcode 5以降はQuartzCore.frameworkフレームワークを追加したりメインヘッダファイルを導入したりする必要はありません)
CALayer
addAnimation:forKey:
メソッドを呼び出すことで、CALayerにCAAnimationオブジェクトを追加し、removeAnimationForKey:
メソッドを呼び出すことによって、
CALayerのアニメーション四、関連属性
はHUGE_VALF
またはMAXFLOAT
, NO,
ただしfillMode
をkCAFillModeForwards
fillMode , removedOnCompletion = NO
)
エージェントオブジェクトの実装を必要とする方法は、@interface NSObject (CAAnimationDelegate)
//
- (void)animationDidStart:(CAAnimation *)anim;
//
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;
@end