iOS核心动画Core Animation(二)

一、 使用核心动画实现动画效果的步骤

■1. 创建动画对象

■2. 设置动画属性

■3. 把动画对象添加到某个 CALayer 对象上

■4. 需要停止动画:可以调用 remove 方法移除动画

具体步骤

1.使用它需要先添加QuartzCore.framework框架和引入主头文件<QuartzCore/QuartzCore.h>

2.初始化一个CAAnimation对象,并设置一些动画相关属性

3.通过调用CALayer的addAnimation:forKey:方法增加CAAnimation对象到CALayer中,这样就能开始执行动画

4.通过调用CALayer的removeAnimationForKey:方法可以停止CALayer中的动画

二、使用Core Animation创建动画实例

1.基本动画

   //1.创建动画对象
CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"position.y"];
    // 2.设置一些属性
    basic.fromValue = @(50);
    basic.toValue = @(400);
    // 3.调整时间 默认是0.25s
    basic.duration = 2;
    // 4 核心动画结束后不要移除
    basic.removedOnCompletion = NO;
    basic.fillMode = kCAFillModeForwards;
    // 5.添加
    // key 标记, 作用: 用来区别不同的核心动画  可以写任意的字符串,也可以写nil.
    [self.redBtn.layer addAnimation:basic forKey:nil];

2.关键帧动画

// 1.创建关键帧动画
    CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"];
    // 2.设置属性
    anim.values = @[@(-M_PI_4 * 0.3), @(M_PI_4  * 0.3), @(-M_PI_4 * 0.3)];
    anim.repeatCount = CGFLOAT_MAX;
    anim.duration = 0.15;
    // 3.添加
    [self.redBtn.layer addAnimation:anim forKey:nil];

3.转场动画

@interface HMViewController ()
//添加控件
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
//图片参数
@property (nonatomic, assign) int index;
@end
@implementation HMViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    _index = 1;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    _index++;
    if (_index == 4) {
        _index = 1;
    }
    NSString *fileName = [NSString stringWithFormat:@"%d",_index];
    _imageView.image = [UIImage imageNamed:fileName];
    //创建动画对象
    CATransition *anim = [CATransition animation];
    //设置动画属性
    anim.type = @"fromleft";
    anim.subtype = kCATransitionFromLeft;
    anim.startProgress = 0.5;
    anim.duration = 2;
    // 添加动画到图层
    [_imageView.layer addAnimation:anim forKey:nil];
}

@end

4.动画组

  //添加基本动画
CABasicAnimation *rotation = [CABasicAnimation animation];
    //设置动画属性
    rotation.keyPath = @"transform.rotation";
    rotation.toValue = @M_PI_2;
  //添加基本动画
   CABasicAnimation *position = [CABasicAnimation animation];
        //设置动画属性
    position.keyPath = @"position";
    position.toValue = [NSValue valueWithCGPoint:CGPointMake(100, 250)];
    //添加基本动画
    CABasicAnimation *scale = [CABasicAnimation animation];
     //设置动画属性
    scale.keyPath = @"transform.scale";
    scale.toValue = @0.5;
 //添加组动画对象
    CAAnimationGroup *group = [CAAnimationGroup animation];
    //设置组动画
    group.animations = @[rotation,position,scale];
    group.duration = 2;
    // 取消反弹
    group.removedOnCompletion = NO;
    group.fillMode = kCAFillModeForwards;
     //添加到图层
    [_redView.layer addAnimation:group forKey:nil];
时间: 2024-10-15 17:41:14

iOS核心动画Core Animation(二)的相关文章

iOS核心动画Core Animation(一)

核心动画Core Animation(一) 一.简述 Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程. 二.核心动画常识 列举处核心动画的一些常识知识. 核心动画的本质:在后台移动图层中的内容,  执行完毕后图层本身的位置并没有发生变化. 如果是Xcode6之前的版本,要导入<QuartzCore/QuartzCore.h>框架,

iOS 核心动画 Core Animation

相关资料: 这个理论比较多:http://www.360doc.com/content/15/0727/09/20918780_487655250.shtml 这个实践比较多,常见的效果都有了http://www.cnblogs.com/wengzilin/p/4250957.html 例子:放大效果.思路是让CALayer动,CABasicAnimation是怎么动,然后将动画加到CALayer //演员初始化 CALayer *scaleLayer = [[CALayer alloc] in

iOS开发-核心动画(Core Animation)

一.简单介绍 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍. Core Animation是跨平台的,可以用在Mac OS X和iOS平台. Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程. 要注意的是,Core Animation是直接作用在CALayer上的,并非UIView.(CALayer点击此处) 二.Core Animation的使用步骤 初始化一个CAAnimation对象,并设置一些动画

核心动画——Core Animation

一. CALayer (一). CALayer简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比方一个button.一个文本标签.一个文本输入框.一个图标等等.这些都是UIView,事实上UIView之所以能显示在屏幕上,全然是由于它内部的一个图层.在创建UIView对象时,UIView内部会自己主动创建一个图层(即CALayer对象),通过UIView的layer属性能够訪问这个层,要注意的是,这个默认的层不同意又一次创建.但能够往层里面加入子层.UIView能够通过add

011-iOS核心动画(Core Animation)

简介 问题一:什么是核心动画(Core Animation)? •Core Animation是非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架<QuartzCore/QuartzCore.h> •CALayer中很多属性都可以通过CAAnimation实现动画效果,包括:opacity.position.transform.bounds.contents等(可以在API文档中搜索:CALay

UI进阶--核心动画(Core Animation)

Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架<QuartzCore/QuartzCore.h>.开发步骤:①初始化一个动画对象(CAAnimation)并设置一些动画相关属性②添加动画对象到层(CALayer)中,开始执行动画CALayer中很多属性都可以通过CAAnimation实现动画效果,包括:opacity.position.transform.b

iOS开发之核心动画(Core Animation)

1.概述 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架<QuartzCore/QuartzCore.h>. 特别注意的是核心动画的动画效果只是“假象”,产生动画的那个view实际上并未发生任何变化. 开发步骤: 第一步:初始化一个动画对象(CAAnimation)并设置一些动画相关属性. 第二步:添加动画对象到层(CALayer)中,开始执行动画. CAL

核心动画(Core Animation)

iOS核心动画

iOS开发系列--让你的应用“动”起来 --iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单: CALayer CALayer简介 CAL