QuartzCore框架 CATransition动画

原创 2016年05月30日 16:32:23


#define kBackgroundColor1 [UIColor redColor]
#define kBackgroundColor2 [UIColor yellowColor]
#define kDurationTime 0.7f

@interface ViewController ()

@property (nonatomic,assign) int subType;

@end

typedef enum : NSUInteger{
    Fade = 1,               //淡入淡出
    Push,                   //推挤
    Reveal,                 //揭开
    MoveIn,                 //覆盖
    Cube,                   //立方体
    SuckEffect,             //吸附
    OglFlip,                //翻转
    RippleEffect,           //波纹
    PageCurl,               //翻页
    PageUnCurl,             //反翻页
    CameraIrisHollowOpen,   //开镜头
    CameraIrisHollowClose,  //关镜头
    CurlDown,               //下翻转
    CurlUp,                 //上翻转
    FlipFromLeft,           //左翻转
    FlipFromRight,          //右翻转
    
}AnimationType;


@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.subType = 0;
    
    [self showViewBgWithName:kBackgroundColor2];
    
}

- (IBAction)tagButtonAction:(id)sender {
    
    UIButton *button = sender;
    AnimationType animationType = button.tag;
    
    NSString *subtypeString;
    
    // 设置方向
    switch (self.subType) {
        case 0:
            subtypeString = kCATransitionFromLeft;
            break;
        case 1:
            subtypeString = kCATransitionFromBottom;
            break;
        case 2:
            subtypeString = kCATransitionFromRight;
            break;
        case 3:
            subtypeString = kCATransitionFromTop;
            break;
        default:
            break;
    }
    
    _subType += 1;
    if (_subType > 3) {
        _subType = 0;
    }
    
    // QuartzCore 动画
    switch (animationType) {
        case Fade:
            [self transitionWithType:kCATransitionFade WithSubtype:subtypeString ForView:self.view];
            break;
            
        case Push:
            [self transitionWithType:kCATransitionPush WithSubtype:subtypeString ForView:self.view];
            break;
            
        case Reveal:
            [self transitionWithType:kCATransitionReveal WithSubtype:subtypeString ForView:self.view];
            break;
            
        case MoveIn:
            [self transitionWithType:kCATransitionMoveIn WithSubtype:subtypeString ForView:self.view];
            break;
            
        case Cube:
            [self transitionWithType:@"cube" WithSubtype:subtypeString ForView:self.view];
            break;
            
        case SuckEffect:
            [self transitionWithType:@"suckEffect" WithSubtype:subtypeString ForView:self.view];
            break;
            
        case OglFlip:
            [self transitionWithType:@"oglFlip" WithSubtype:subtypeString ForView:self.view];
            break;
            
        case RippleEffect:
            [self transitionWithType:@"rippleEffect" WithSubtype:subtypeString ForView:self.view];
            break;
            
        case PageCurl:
            [self transitionWithType:@"pageCurl" WithSubtype:subtypeString ForView:self.view];
            break;
            
        case PageUnCurl:
            [self transitionWithType:@"pageUnCurl" WithSubtype:subtypeString ForView:self.view];
            break;
            
        case CameraIrisHollowOpen:
            [self transitionWithType:@"cameraIrisHollowOpen" WithSubtype:subtypeString ForView:self.view];
            break;
            
        case CameraIrisHollowClose:
            [self transitionWithType:@"cameraIrisHollowClose" WithSubtype:subtypeString ForView:self.view];
            break;
            
            
            
            
        case CurlDown:
            [self animationWithView:self.view WithAnimationTransition:UIViewAnimationTransitionCurlDown];
            break;
            
        case CurlUp:
            [self animationWithView:self.view WithAnimationTransition:UIViewAnimationTransitionCurlUp];
            break;
            
        case FlipFromLeft:
            [self animationWithView:self.view WithAnimationTransition:UIViewAnimationTransitionFlipFromLeft];
            break;
            
        case FlipFromRight:
            [self animationWithView:self.view WithAnimationTransition:UIViewAnimationTransitionFlipFromRight];
            break;
            
        default:
            break;
    }
    
    static int i = 0;
    if (i == 0) {
        [self showViewBgWithName:kBackgroundColor1];
        i = 1;
    }else{
        [self showViewBgWithName:kBackgroundColor2];
        i = 0;
    }
}

- (void)showViewBgWithName:(UIColor *)color{
    self.view.backgroundColor = color;
}


#pragma mark CATransition 动画实现
- (void)transitionWithType:(NSString *)type WithSubtype:(NSString *)subType ForView:(UIView *)View{
    
    //创建Catransition对象
    CATransition *animation = [CATransition animation];
    
    //设置运动时间
    animation.duration = kDurationTime;
    
    //设置运动type
    animation.type = type;
    
    if (subType != nil) {
        // 设置子类
        animation.subtype = subType;
    }
    
    // 设置运动速度
    animation.timingFunction = UIViewAnimationOptionCurveEaseInOut;
    
    [View.layer addAnimation:animation forKey:@"animation"];
    
}


#pragma mark UIView 实现动画
- (void)animationWithView:(UIView *)view WithAnimationTransition:(UIViewAnimationTransition)transition{
    
    [UIView animateWithDuration:kDurationTime animations:^{
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationTransition:transition forView:view cache:YES];
    }];
}


@end


iOS ——QuartzCore核心动画框架

核心动画框架 使用核心动画需要引入的框架:#import CALayer: CoreAnimation CALayer就是UIView上的图层,很多的CALayer组成了UIView。 C...
  • ci915194561
  • ci915194561
  • 2015年11月29日 19:58
  • 1891

CATransition的动画效果类型及实现方法

来源:http://hi.baidu.com/bunsman/blog/item/691c954e922ee610b3de05bc.html 实现iphone漂亮的动画效果主要有两种...
  • u010486174
  • u010486174
  • 2014年03月11日 09:48
  • 934

Swift学习笔记(1)过渡动画(CATransition和UIViewAnimation)的用法

Swift学习笔记(1)过渡动画(CATransition和UIViewAnimation)的用法CATransition和UIViewAnimation是场景切换时常用的两种过渡动画目录Swift学...
  • sps900608
  • sps900608
  • 2016年06月29日 17:16
  • 1411

【iOS开发】---- 转场动画 CATransition

Inherits from CAAnimation : NSObject Conforms to NSCoding (CAAnimation) NSCopying (CAAnimati...
  • sjx19871225
  • sjx19871225
  • 2013年05月16日 14:09
  • 9366

使用CATransition动画来进行图像翻转效果,实用性很强

使用CATransition进行界面的各种动画的翻转,使用方便,效果很好
  • wen22278
  • wen22278
  • 2016年08月04日 13:41
  • 501

ios 动画效果CATransition笔记

初学ios开发,很多概念还不清楚,所以只有边学边做例子。又怕学了后面忘了前面,因此用自己的博客来纪录自己的学习历程,也是对自己学习不要懈怠做个监督。     刚学ios做动画效果。因为ios封装得很好...
  • gtf20077292012
  • gtf20077292012
  • 2014年01月20日 14:40
  • 10168

QuartzCore框架-- iOS中的动画

iOS学习笔记之QuartzCore框架 iOS编程给用户视觉反馈其实都是通过QuartzCore框架来进行的,说白了,所有用户最终看到的显示界面都是图层合成的结果,而图层即是QuartzCore中的...
  • agonie201218
  • agonie201218
  • 2016年06月02日 16:44
  • 210

iOS 基于CATransition实现翻页、旋转等动画效果 —— HERO博客

iOS 基于CATransition实现翻页、旋转、淡化、推进、滑入滑出、立方体、吮吸、波纹等动画效果。...
  • hero_wqb
  • hero_wqb
  • 2016年06月01日 15:40
  • 1919

CATransition动画精讲

前言曾经,笔者对动画一无所知,当他人问起时,总是似懂非懂。每一次别人说起动画效果时,笔者都不好意思插话,因此懂得太少,只是会使用UIView的那几个添加动画的方法。现在,不再等待,一步一步地学习其基础...
  • woaifen3344
  • woaifen3344
  • 2015年12月16日 22:42
  • 666

页面切换动画CATransition

// // AnimationViewController.h // StudyiOS // // Created by ZhangYiCheng on 11-9-28. // Copyrig...
  • laencho
  • laencho
  • 2014年04月03日 10:14
  • 508
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QuartzCore框架 CATransition动画
举报原因:
原因补充:

(最多只允许输入30个字)