コア アニメーションは、非常に強力なアニメーション処理 API のセットです。これを使用すると、非常に素晴らしいアニメーション効果を作成でき、多くの場合、半分の労力で 2 倍の結果が得られます。フレームワークを導入し、対応するフレームワーク
開発手順:
アニメーション オブジェクト (CAAnimation) を初期化し、アニメーション関連のプロパティをいくつか設定します
追加アニメーション オブジェクトをレイヤー (CALayer) に追加し、アニメーションの実行を開始します
opacity、position、 など、CALayer の多くの属性は CAAnimation を通じてアニメーション化できます。 transform、bounds 、contents など (API ドキュメント: CALayer Animatable Properties で検索できます)
レイヤーにアニメーションを追加します (CALayer) CALayer の addAnimation:forKey を呼び出すと、アニメーションがトリガーされます。 removeAnimationForKey を呼び出すことで、レイヤー内のアニメーションを停止できます
コア アニメーションのアニメーション実行プロセスはバックグラウンドで動作し、メイン スレッドをブロックしません
CAAnimation 継承構造
CAAnimation
アニメーションの継続時間と速度を制御するすべてのアニメーション オブジェクトの親クラスです。抽象クラスなので直接使用することはできません。直接使用するには、その特定のサブクラスを使用する必要があります。
属性分析: (赤色は CAMediaTiming プロトコルからの属性を表します)
duration:アニメーション
repeatCount: アニメーションの繰り返し回数
repeatDuration: アニメーションの繰り返し時間
removedOnCompletion: デフォルトは YES です。これは、アニメーションの実行後にレイヤーから削除され、グラフィックスがアニメーションの実行前の状態に復元されることを意味します。アニメーションの実行後にレイヤーの状態を維持したい場合は、これを NO に設定しますが、fillMode を kCAFillModeForwards
fillMode に設定します。非実行中の現在のオブジェクトの動作を決定します。 -active period 。たとえば、アニメーションの開始前、アニメーションの終了後
beginTime: アニメーションの遅延実行時間を設定するために使用できます。2 秒遅らせたい場合は、それを設定します。 CACurrentMediaTime()+2、CACurrentMediaTime() はレイヤーの現在時刻です。
timingFunction: 速度制御関数、アニメーション実行のリズムを制御します
delegate: アニメーション プロキシ
CAPropertyAnimatio
は CAAnimation のサブクラスであり、アニメーション オブジェクトを作成するには、次の操作を行います。 CABasicAnimation と CAKeyframeAnimation
属性分析:
keyPath: CALayer の属性名を keyPath (NSString 型) として指定し、その値を変更することで、その 2 つのサブクラスを使用する必要があります。 CALayer のこの属性により、対応するアニメーション効果を実現できます。たとえば、keyPath として @"position" を指定し、CALayer のposition 属性の値を変更して、翻訳アニメーション効果を実現します。
CABasicAnimation
サブクラスCAPropertyAnimation の
属性解析:
fromValue: keyPath 対応属性の初期値
toValue: keyPath 対応属性 以上
の値アニメーションが進行するにつれて、継続時間中に keyPath の対応する属性の値が fromValue から toValue
If fillMode=kCAFillModeForwards およびremovedOnComletion=NO に設定すると、アニメーションの実行後、レイヤーにはアニメーションの実行後の状態が表示され続けます。しかし本質的には、レイヤーのプロパティ値はアニメーションが実行される前の初期値のままであり、実際には変更されていません。たとえば、CALayer の初期位置値は (0,0)、CABasicAnimation の fromValue は (10,10)、toValue は (100,100) ですが、アニメーションが終了した後もレイヤーは (100,100) の位置に残ります。実行される、本質的にレイヤー 位置はまだ (0,0)
CAKeyframeAnimation
CApropertyAnimation のサブクラスCABasicAnimation との違いは次のとおりです: CABasicAnimation は 1 つの値 (fromValue) から別の値 (toValue) にのみ変更でき、CAKeyframeAnimation はこれらの値を保存するために NSArray を使用します。
属性分析:
values: 上記の NSArray オブジェクトです。内部の要素は「キーフレーム」と呼ばれます。アニメーション オブジェクトは、指定された時間 (継続時間) 内で値配列内の各キーフレームを順番に表示します。
path: CGPathRefCGMutablePathRef を設定して、レイヤーをパスに沿って移動させることができます。 path は CALayer のアンカーポイントと位置でのみ機能します。パスを設定した場合、値は無視されます。
keyTimes: 対応するキー フレームに対応する時点を指定できます。値の範囲は 0 ~ 1.0 で、各 keyTimes A keyTimes が設定されていない場合、各キー フレームの時間を均等に分割します。
CABasicAnimation は、最大 2 つのキーフレームを持つ CAKeyframeAnimation と見なされます。
CAAnimationGroup
アニメーション オブジェクトのグループを保存できる CAAnimation のサブクラス。CAAnimationGroup オブジェクトをレイヤーに追加すると、グループ内のすべてのアニメーション オブジェクトを同時に実行できます。 >
属性分析:
アニメーション: アニメーション オブジェクトのグループを保存するために使用される NSArray
デフォルトでは、アニメーション オブジェクトのグループが同時に実行されます。アニメーション オブジェクトの beginTime プロパティを設定することで、アニメーションの開始時間を変更できます。
CATransition
CAAnimation のサブクラス。次の目的で使用されます。トランジション アニメーション。レイヤーが画面外と画面上で移動するのをアニメーション化する機能。 iOS のトランジション アニメーション効果は Mac OS よりも若干劣ります
type: アニメーショントランジションタイプ
サブタイプ: アニメーショントランジション方向
startProgress: アニメーションの開始点 (アニメーション全体の割合)
endProgress: アニメーションの終了点 (アニメーション全体の割合)
UIViewanimation
UIKit はアニメーションを UIView クラスに直接統合します。一部の内部プロパティが変更されると、UIView はこれらの変更に対するアニメーション サポートを提供します。
実行に必要な作業。アニメーションは UIView クラスによって自動的に完了しますが、アニメーションの実行時にビューに通知するために、[UIView beginAnimations:] の間にプロパティを変更するコードを配置する必要があります。 nil
context:nil] および [UIView
commitAnimations] 共通メソッド分析: + (void)setAnimationDelegate: (id)delegate
アニメーションの開始時または終了時に使用されるアニメーション プロキシ オブジェクトを設定します。 デリゲート オブジェクトにメッセージを送信します。
+ (void)setAnimationWillStartSelector :(SEL)selector
アニメーションが開始しようとしているときに、デリゲート オブジェクトのセレクターを実行し、beginAnimations:context を設定します。 :渡されたパラメーターは selector
+ (void) に渡されます。 setAnimationDidStopSelector:(SEL)selector
アニメーションが終了したら、デリゲートオブジェクトのセレクターを実行し、beginAnimations:context: で渡されたパラメーターが selector
に渡されます。 + (void)setAnimationDuration:(NSTimeInterval)duration
アニメーションの長さ (秒単位)
+ (void)setAnimationDelay:(NSTimeInterval )delay
アニメーションの遅延 開始前の遅延秒数
+ (void)setAnimationStartDate :(NSDate *)startDate
アニメーションの開始時間、デフォルト
+ (void)setAnimationCurve:(UIViewAnimationCurve)curve
アニメーション化されたリズム コントロールです。詳細については、以下の「備考」を参照してください
+ ( void)setAnimationRepeatCount:(float)repeatCount
アニメーションの繰り返し数
+ ( void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses
YES に設定すると、アニメーションを繰り返し実行するたびに、その効果が前回とは逆になることを意味します
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition
forView:(UIView *)view
cache:(BOOL)cache ビューの遷移効果を設定します ビュー、遷移仕様 遷移タイプ、キャッシュ設定 YES はビューを使用することを意味しますキャッシュ、パフォーマンスの向上
ブロックアニメーション
+ (void)
animateWithDuration:(NSTimeInterval)duration 遅延:(NSTimeInterval)遅延
オプション:(UIViewAnimationOptions)オプション アニメーション:(void (^)(void))アニメーション 完了:(void (^) )(BOOL 終了))completion パラメータ分析: duration: アニメーションの継続時間
delay
: アニメーション遅延秒後に開始
オプション: アニメーション リズム コントロール
アニメーション: ビューのプロパティを変更します コードはこのブロックに配置されます
completion: アニメーションが終了すると、このブロックは自動的に呼び出されます
+ (void)transitionWithView :(UIView *)ビュー
期間:(NSTimeInterval)期間
オプション:(UIViewAnimationOptions)オプション アニメーション:(void (^)(void)) アニメーション 完了 :(void (^)(BOOL completed))completion パラメータ分析: duration: アニメーションの継続時間
view: 遷移アニメーションが必要なビュー
オプション: 遷移アニメーションの種類
アニメーション: ビューのプロパティを変更するコードを配置しますこのブロック
completion: アニメーションが終了すると、このブロックは自動的に + (void)
transitionFromView:(UIView *)fromView と呼ばれます。 toView:(UIView *)toView
duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^) (BOOL 終了))completion メソッドが呼び出された後、次の 2 行のコードを実行するのと同じです: // Add toView を親ビューに追加します [fromView.superview addSubview:toView];
// fromView を親ビューから削除します
[fromView.superview RemoveFromSuperview];
パラメータ分析:
duration: アニメーションの継続時間
オプション :遷移アニメーションの種類
アニメーション: ビューのプロパティを変更するコードをこのブロックに配置します
completion: アニメーション終了後、自動的に呼び出しますこのブロック
UIImageView のフレームアニメーション
UIImageView は、特定の時間内に一連の画像を順番に表示できます
関連する属性分析:
animationImages: 表示される画像 (UIImage を含む NSArray)
animationDuration: 1 回完全に表示されるanimeImages 内のすべての画像
animationRepeatCount: アニメーションの実行回数 (デフォルトは 0、無限ループを表す)
関連メソッド分析:
- (void)startAnimating; アニメーション開始
- (void)stopAnimating; (BOOL)
isAnimating; アニメーションが実行中かどうか
UIActivityIndicatorView
は、アニメーションを通知するために使用できる回転進行ホイールです。 user 進行中の操作があります。通常、initWithActivityIndicatorStyle を使用して
メソッド分析を初期化します。
- (void)
startAnimating; アニメーションを開始します。 (void) stopAnimating; アニメーションを停止します
- (BOOL)isAnimating; アニメーションが実行されているかどうか
UIActivityIndicatorViewStyle には 3 つの値があります。 :
UIActivityIndicatorViewStyleWhiteLarge//大きな白いインジケーター
UIActivityIndicatorViewStyleWhite //標準サイズの白いインジケーター
UIActivityIndicatorViewStyleGray / /白の背景にグレーのインジケーター