アニメーションの予備的研究5・中核アニメーション:アニメーション_遷移アニメーションの形で別のシーンへの1つのシーンからの移行

遷移アニメーションは、アニメーションの形態における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

業績:

TransitionAnimationEffect

コードは非常にシンプルですが、効果は非常に印象的な、およびパフォーマンスです。もちろん、限られたデモコード、我々が達成するために、アニメーションの他のタイプを所有することができ、効果は非常に素晴らしいです。


公開された40元の記事 ウォン称賛10 ビュー30000 +

おすすめ

転載: blog.csdn.net/ai_pple/article/details/50979148