Core Animation之转场动画

1、转场动画简单介绍

CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点
UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果
属性解析:
type:动画过渡类型
subtype:动画过渡方向
startProgress:动画起点(在整体动画的百分比)
endProgress:动画终点(在整体动画的百分比)

2、转场动画效果类型

Core Animation之转场动画_第1张图片
转场动画效果.png

3、图片浏览器的转场动画效果

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *iconView;
// 图片索引
@property (nonatomic,assign) int index;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.index = 1;
    
}

- (IBAction)previousImageAnimation:(UIButton *)sender {
    self.index--;
       if (self.index<1) {
              self.index=11;
           }
       self.iconView.image=[UIImage imageNamed: [NSString stringWithFormat:@"%03d.jpg",self.index]];
    
       //创建核心动画
       CATransition *caanimation=[CATransition animation];
        //告诉要执行什么动画
        //设置过度效果
       caanimation.type=@"cube";
       //设置动画的过度方向(向左)
       caanimation.subtype=kCATransitionFromLeft;
       //设置动画的时间
       caanimation.duration=2.0;
        //添加动画
      [self.iconView.layer addAnimation:caanimation forKey:nil];

}
- (IBAction)nextImageAnimation:(UIButton *)sender {
    self.index++;
    if (self.index>11) {
        self.index = 1;
    }
    self.iconView.image=[UIImage imageNamed: [NSString stringWithFormat:@"%03d.jpg",self.index]];
    
    //创建核心动画
    CATransition *caanimation=[CATransition animation];
    //告诉要执行什么动画
    //设置过度效果
    caanimation.type=@"cube";
    //设置动画的过度方向(向右)
    caanimation.subtype=kCATransitionFromRight;
    //设置动画的时间
    caanimation.duration=2.0;
    //添加动画
    [self.iconView.layer addAnimation:caanimation forKey:nil];

}

@end

执行的效果

Untitled.gif

你可能感兴趣的:(Core Animation之转场动画)