遷移アニメーションは、アニメーションの形態における1つのシーンから別のシーンへの遷移です。使用遷移アニメーションは、一般的に次のステップに分割されています。
アニメーションの遷移を作成します。1.
2.遷移タイプ、サブタイプ(オプション)、及び他の特性
3.トランジションの新しいビューを設定し、レイヤにアニメーションを追加します
次の表に、一般的な遷移型(Appleの独自APIの公式は、アニメーションの種類を開示しなかったが、それでもで使用することができることに注意してください):
アニメーションの種類 | 説明 | 対応する定数 | 支持方向 |
---|---|---|---|
オープンAPI | |||
フェード | フェードアウト効果 | kCATransitionFade | それはあります |
movein | 古いビューに新しいビューに移動 | kCATransitionMoveIn | それはあります |
押す | 古いビューの新しいビューの導入 | kCATransitionPush | それはあります |
明らかにする | 古いビューショーに新しいビューを削除します | kCATransitionReveal | それはあります |
プライベートAPI | 専用の文字列によるプライベートAPIへのアクセス | ||
立方体 | キューブロールオーバー効果 | ノー | それはあります |
oglFlip | ロールオーバー効果 | ノー | それはあります |
suckEffect | 収縮効果 | ノー | ノー |
波及効果 | 波及効果をドロップ | ノー | ノー |
pageCurl | フリップ効果アップ | ノー | それはあります |
pageUnCurl | ダウン効果 | ノー | それはあります |
cameralIrisHollowOpen | カメラの効果を開きます | ノー | ノー |
cameraIrisHollowClose | カメラエフェクトオフ | ノー | ノー |
また、アニメーションの種類の方向をサポートする他に、サブタイプを含みます。
アニメーションのサブタイプ | 説明 |
---|---|
kCATransitionFromRight | 右からの移行 |
kCATransitionFromLeft | 左からの移行 |
kCATransitionFromTop | トランジションの上から |
kCATransitionFromBottom | 下からの移行 |
前回の記事「では、IOSの開発シリーズ-無限ループ画像ビューア」UIScrollViewのを使用するために、無限ループの画像ビューアは、遷移アニメーションの使用はUIImageViewは美しい無限大を実現使う上でのパフォーマンスの最適化に多くの時間を費やしましたか循環画像ビューア。
// // KCMainViewController.m // TransitionAnimation // // 14-3-12に謙信キュイによって作成されます。 //著作権(C)2014年謙信キュイ。全著作権所有。 // #importを"KCMainViewController.h" の#define IMAGE_COUNT 5 @ インタフェースKCMainViewController(){ UIImageView * _imageView。 int型_currentIndex; } @end @implementation KCMainViewController - (ボイド)のviewDidLoad { [スーパーのviewDidLoad]。 //定义图片控件 _imageView = [[UIImageView ALLOC] INIT]。 _imageView.frame = [UIScreen mainScreen] .applicationFrame。 _imageView.contentMode = UIViewContentModeScaleAspectFit。 _imageView.image = [UIImage imageNamed:@ "0.jpg" ]; //默认图片 [self.viewのaddSubview:_imageView]; //添加手势 UISwipeGestureRecognizer * leftSwipeGesture = [[UISwipeGestureRecognizerのalloc] initWithTarget:自己アクション:@selector(leftSwipe :)]; leftSwipeGesture.direction = UISwipeGestureRecognizerDirectionLeft。 [self.view addGestureRecognizer:leftSwipeGesture]。 UISwipeGestureRecognizer * rightSwipeGesture = [[UISwipeGestureRecognizer ALLOC] initWithTarget:自己アクション:@selector(rightSwipe :)]。 rightSwipeGesture.direction = UISwipeGestureRecognizerDirectionRight。 [self.view addGestureRecognizer:rightSwipeGesture]。 } #プラグマ左隣の画像にマークスワイプ - (無効)leftSwipe:(UISwipeGestureRecognizer *)ジェスチャー{ [セルフtransitionAnimation:YES]; } の#pragma マーク右スワイプ画像上の - (ボイド)rightSwipe:(UISwipeGestureRecognizer *)ジェスチャー{ [セルフtransitionAnimation:NO]; } の#pragma トランジションアニメーションマーク - (無効)transitionAnimation:(BOOL)isNextを{ //トランジションを作成する1つのアニメーションオブジェクト。 CATransition *トランジション= [[CATransitionのalloc]のinit]; //セットアニメーションタイプ2は、Appleの関係者は、公共のために支払う注意をしませんでした。アニメーションだけで文字列型、および対応する定数が定義されていない transition.type = @ 「キューブ」; //セットサブタイプ IF {(isNext){ = kCATransitionFromRight transition.subtype; } 他 } = kCATransitionFromLeft transition.subtype; } //アニメーションしばしば設定 transition.duration = 1.0F; //設定転移3アニメーション遷移を新しいビューを追加した後。 _imageView.image = [自己のgetImage:isNext]; [_imageView.layer addAnimation :移行forKey:@ "KCTransitionAnimation" ]; } の#pragma マークは、現在のピクチャを取得 - (UIImage *)のgetImage:(BOOL)isNext { IF (isNext){ _currentIndex =%のIMAGE_COUNT(_ currentIndex + 1); } 他{ _currentIndex(= 。+ IMAGE_COUNT 1 _currentIndex)%のIMAGE_COUNT; NSStringのimagenameの* = [NSStringのstringWithFormat:@ "%のI.jpg" 、_currentIndex]; リターン [UIImage imageNamed:imagenameの]; } @end
業績:
コードは非常にシンプルですが、効果は非常に印象的な、およびパフォーマンスです。もちろん、限られたデモコード、我々が達成するために、アニメーションの他のタイプを所有することができ、効果は非常に素晴らしいです。