CoreAnimation基本介绍:

  • CoreAnimation动画位于iOS框架的Media层
  • CoreAnimation动画实现需要添加QuartzCore.Framework
  • CoreAnimation基本上是LayerAnimation

CoreAnimation分类:

CoreAnimation作用:

CoreAnimation

CALayer基本介绍

CALayer的常用属性

CABasicAnimation

CAKeyframeAnimation

CAAnimationGroup

CASpringAnimation

XIB分别设置几个button然后关联方法,代码展示:

 1 @interface ViewController ()
 2 @property (weak, nonatomic) IBOutlet UIImageView *imageView;
 3
 4 @end
 5
 6 @implementation ViewController
 7 #pragma mark - CABasicAnimation
 8 - (IBAction)CABasicAnimation:(id)sender {
 9     // 第一步:创建动画对象
10     CABasicAnimation *basicAnimation = [CABasicAnimation animation];
11     // 第二步:告诉layer层需要执行什么样的动画(后边设置的内容为CALayer的相关属性)
12     basicAnimation.keyPath = @"position";  // position 改变位置的
13     // 第三步:告诉layer从哪里来,到哪里去
14     basicAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(100, 100)];
15     basicAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(300, 600)];
16     // 注意点: 如果要实现图片不会到原来点,需要以下两句代码
17     basicAnimation.removedOnCompletion = NO;
18     // 设置保存动画状态的内容
19     basicAnimation.fillMode = kCAFillModeForwards;
20
21     // 第四步:设置动画持续的时长
22     basicAnimation.duration = 6.0f;
23     // 第五步:将要执行的动画添加到calayer上
24     [self.imageView.layer addAnimation:basicAnimation forKey:@"basic"];
25     // *************翻转效果
26     CABasicAnimation *basic = [CABasicAnimation animation];
27     basic.keyPath = @"transform";
28     // 设置翻转的地方
29     basic.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI_2, 0, 0, 1)];
30     basic.duration = 0.2f;
31     [self.imageView.layer addAnimation:basic forKey:@"aaaa"];
32     // 根据key去移除动画
33     //    [self.imageView.layer removeAnimationForKey:@"basic"];
34 }
35
36 #pragma mark - CAKeyframeAnimation
37 - (IBAction)CAKeyAnimation:(id)sender {
38     // 第一步:创建对象
39     CAKeyframeAnimation *keyAnimation = [CAKeyframeAnimation animation];
40     // 第二步:设置动画轨迹
41     keyAnimation.keyPath = @"transform.rotation";
42     // 第三步:设置翻转的角度 (弧度计算公式:度数/180*M_PI)
43     keyAnimation.values = @[@(-300 / 180.0 * M_PI), @(300 / 180.0 * M_PI), @(-180 / 180.0 * M_PI)];
44     // 第四步:设置时长
45     keyAnimation.duration = 15.0f;
46     // 第五步:添加动画到layer层
47     [self.view.layer addAnimation:keyAnimation forKey:@"bbbb"];
48 }
49
50 #pragma mark - CAAnimationGroup
51 - (IBAction)CAAnimationGroup:(id)sender {
52     // 平移动画
53     CABasicAnimation *basic1 = [CABasicAnimation animation];
54     basic1.keyPath = @"transform.translation.y";    // 按照y轴平移
55     basic1.toValue = @(400);
56     // 缩小动画
57     CABasicAnimation *basic2 = [CABasicAnimation animation];
58     basic2.keyPath = @"transform.scale";  // 缩小
59     basic2.toValue = @(0.3);
60     // 旋转动画
61     CABasicAnimation *basic3 = [CABasicAnimation animation];
62     basic3.keyPath = @"transform.rotation";   // 旋转
63     basic3.toValue = @(M_PI);
64
65     // 需要创建管理各个动画的动画组
66     CAAnimationGroup *group = [CAAnimationGroup animation];
67     group.animations = @[basic1,basic2,basic3];
68     // group 会自动分配时间
69     group.duration = 5.0f;
70
71     [self.imageView.layer addAnimation:group forKey:@"ccccc"];
72 }
73
74 #pragma mark - CASpring
75 - (IBAction)CASpring:(id)sender {
76     // 设置对象
77     CASpringAnimation *spring = [CASpringAnimation animation];
78     spring.keyPath = @"transform.scale";
79     spring.fromValue = @1;
80     spring.toValue = @0.2;
81     spring.duration = 3.0f;
82
83     [self.imageView.layer addAnimation:spring forKey:@"ddddd"];
84 }
85
86 @end

总结:

转载于:https://www.cnblogs.com/crazygeek/p/5535996.html

CoreAnimation (CALayer 动画)相关推荐

  1. GIF动画,菊花动画,UIView动画,CoreAnimation动画(CALayer动画)的用法

    1.GIF动画 1 // 创建一个显示图片的imageView // viewController创建 2 UIImageView *showGifImageView = [[UIImageView ...

  2. 【动画2】CALayer动画

    一)UIView动画 二)CoreAnimation动画 前言:上一篇已经介绍了UIKit给我们封装好的UIView动画的使用,UIKit动画是建立在CoreAnimation动画之上的,CoreAn ...

  3. iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程

    iOS开发CoreAnimation解读之一--初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ...

  4. iOS动画:UIView动画和CALayer动画(CABasicAnimation、CAKeyframeAnimation的使用)

    iOS中的动画有两种实现方式,一种是UIView来实现动画,另一种动画是通过CALayer来实现,下面介绍两种动画的简单实现: 一.UIView动画的实现 UIView使用Context来实现动画 关 ...

  5. 使用Instruments中的CoreAnimation分析动画

    使用Instruments中的CoreAnimation分析动画 1. 打开Instruments中的CoreAnimation 2. 运行前的准备工作 要注意勾选以下选项,便于调试 3. 运行与调试 ...

  6. iOS 动画之CoreAnimation(CALayer)

    CoreAnimation基本介绍 CoreAnimation动画位于iOS框架的Media层 CoreAnimation动画实现需要添加QuartzCore.Framework CoreAnimat ...

  7. CoreAnimation动画(CALayer动画)

    1 #pragma mark - CABasicAnimation动画 2 - (IBAction)basicAnimation:(UIButton *)sender { 3 4 // 1.创建动画对 ...

  8. Swift CoreAnimation ---- CALayer的呈现层和模型层

    前言 自己的语言能力有限,借鉴别人的文章理解并写下这篇文章. 参考链接:iOS CoreAnimation专题--原理篇(三) CALayer的模型层与展示层 - 知乎 使用Swift语言,深入CAL ...

  9. 小知识六、CALayer动画

    CAShapeLayer 圆形指示器 let ovalShapeLayer: CAShapeLayer = CAShapeLayer()let anotherOvalShapeLayer: CASha ...

最新文章

  1. Django源码分析1:创建项目和应用分析
  2. POJ-2771 Guardian of Decency 最大独立子集
  3. python中time模块详解_Python time模块详解
  4. iceworks-cli构建模块说明
  5. java 只有日期的类_JAVA日期和时间类彻底解决(1)[转]
  6. std::string删除首字符
  7. Linux基础知识一
  8. 第一次立会(2019.3.24)
  9. 九阴真经 服务器列表文件,《九阴真经》部分服务器互通升级公告
  10. webpack2.7.0配置不同的打包环境
  11. 排序算法之 插入排序
  12. 用上帝视角来看待组件的设计模式
  13. Spring中的两种AOP织入方式
  14. 华为加班夜宵报销要主管审批?任正非怒斥:多此一举
  15. Java图片嵌套图片
  16. Normalized Cut的C++代码 Linux Win
  17. 《算法导论》第六章之堆和优先级队列相关算法C语言实现
  18. teamviewer linux远程开机,Ubuntu远程管理(teamviewer)
  19. 【Tensorflow】 tf.equal(tf.argmax(y, 1),tf.argmax(y_, 1))用法
  20. 题目标题: 高斯日记

热门文章

  1. 【牛客 - 373C】抓捕盗窃犯(连通图,思维,dfs 或 并查集)
  2. 【牛客 - 318G】LLLYYY的数字思维 与【牛客 - 289J】这是一个沙雕题II(贪心构造)
  3. stm32linux区别,STM32MPU和OpenSTLinux你了解多少?
  4. 转成数组_JavaScript之数组扁平化
  5. 基于注解的字段脱敏处理
  6. Linux简单命令集——less
  7. (acm)C++加速输入的几种方法
  8. leetcode41 缺失的第一个正数
  9. 用Java的Set实现交并差等集合运算
  10. STL源码剖析 set