ios-day18-12(使用CATransition实现转场动画效果)

CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。

UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果

CATransition属性解析:

type:动画过渡类型

subtype:动画过渡方向

startProgress:动画起点(在整体动画的百分比)

endProgress:动画终点(在整体动画的百分比)


下面这个demo演示了CATransition的转场动画效果:


源码下载地址:http://download.csdn.net/detail/liu537192/8558681


效果图:


核心代码:

//
//  JLViewController.m
//  12-核心动画
//
//  Created by XinYou on 15-4-2.
//  Copyright (c) 2015年 vxinyou. All rights reserved.
//

#import "JLViewController.h"

@interface JLViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *iconView;
- (IBAction)previous;

- (IBAction)next;
/**
 *  当前图片索引
 */
@property (nonatomic, assign) int index;
@end

@implementation JLViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    
}
/**
 *  上一张
 */
- (IBAction)previous {
    
    self.index--;
    
    // 该项目中一共只有9张图片。
    if (self.index == -1) {
        self.index = 8;
    }
    
    NSString *fileName = [NSString stringWithFormat:@"%d.jpg", self.index + 1];
    
    self.iconView.image = [UIImage imageNamed:fileName];
    
    // 创建动画
    CATransition *anim = [CATransition animation];
    
    // 设置动画
    
    // type:动画过渡效果
    /* 过渡效果u2028     
    fade     //交叉淡化过渡(不支持过渡方向) kCATransitionFade    
    push     //新视图把旧视图推出去  kCATransitionPush
    moveIn   //新视图移到旧视图上面   kCATransitionMoveIn
    reveal   //将旧视图移开,显示下面的新视图  kCATransitionReveal
    cube     //立方体翻滚效果
    oglFlip  //上下左右翻转效果
    suckEffect   //收缩效果,如一块布被抽走(不支持过渡方向)
    rippleEffect //滴水效果(不支持过渡方向)
    pageCurl     //向上翻页效果
    pageUnCurl   //向下翻页效果
    cameraIrisHollowOpen  //相机镜头打开效果(不支持过渡方向)
    cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)*/
    anim.type = @"pageUnCurl";
    
    // subtype:动画过渡方向
    /* 过渡方向
    kCATransitionFromRight
    kCATransitionFromLeft
    kCATransitionFromBottom
    kCATransitionFromTop*/
    anim.subtype = kCATransitionFromLeft;
    
    /**
     CATransition还有两个比较牛逼的属性:
     startProgress:动画起点(在整体动画的百分比)
     endProgress:动画终点(在整体动画的百分比)
     
     这两个属性的效果请自行研究。。。
     */
    
    anim.duration = 0.5;
    
    [self.iconView.layer addAnimation:anim forKey:nil];
    
}
/**
 *  下一张
 */
- (IBAction)next {
    
    self.index++;
    
    if (self.index == 9) {
        self.index = 0;
    }
    
    NSString *fileName = [NSString stringWithFormat:@"%d.jpg", self.index + 1];
    
    self.iconView.image = [UIImage imageNamed:fileName];
    
    CATransition *anim = [CATransition animation];
    
    anim.type = @"pageCurl";
    anim.subtype = kCATransitionFromLeft;
    
    anim.duration = 0.5;
    
    [self.iconView.layer addAnimation:anim forKey:nil];
}
@end



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值