CoreAnimation (CALayer 动画)
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 动画)相关推荐
- GIF动画,菊花动画,UIView动画,CoreAnimation动画(CALayer动画)的用法
1.GIF动画 1 // 创建一个显示图片的imageView // viewController创建 2 UIImageView *showGifImageView = [[UIImageView ...
- 【动画2】CALayer动画
一)UIView动画 二)CoreAnimation动画 前言:上一篇已经介绍了UIKit给我们封装好的UIView动画的使用,UIKit动画是建立在CoreAnimation动画之上的,CoreAn ...
- iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程
iOS开发CoreAnimation解读之一--初识CoreAnimation核心动画编程 一.引言 二.初识CoreAnimation 三.锚点对几何属性的影响 四.Layer与View之间的关系 ...
- iOS动画:UIView动画和CALayer动画(CABasicAnimation、CAKeyframeAnimation的使用)
iOS中的动画有两种实现方式,一种是UIView来实现动画,另一种动画是通过CALayer来实现,下面介绍两种动画的简单实现: 一.UIView动画的实现 UIView使用Context来实现动画 关 ...
- 使用Instruments中的CoreAnimation分析动画
使用Instruments中的CoreAnimation分析动画 1. 打开Instruments中的CoreAnimation 2. 运行前的准备工作 要注意勾选以下选项,便于调试 3. 运行与调试 ...
- iOS 动画之CoreAnimation(CALayer)
CoreAnimation基本介绍 CoreAnimation动画位于iOS框架的Media层 CoreAnimation动画实现需要添加QuartzCore.Framework CoreAnimat ...
- CoreAnimation动画(CALayer动画)
1 #pragma mark - CABasicAnimation动画 2 - (IBAction)basicAnimation:(UIButton *)sender { 3 4 // 1.创建动画对 ...
- Swift CoreAnimation ---- CALayer的呈现层和模型层
前言 自己的语言能力有限,借鉴别人的文章理解并写下这篇文章. 参考链接:iOS CoreAnimation专题--原理篇(三) CALayer的模型层与展示层 - 知乎 使用Swift语言,深入CAL ...
- 小知识六、CALayer动画
CAShapeLayer 圆形指示器 let ovalShapeLayer: CAShapeLayer = CAShapeLayer()let anotherOvalShapeLayer: CASha ...
最新文章
- Django源码分析1:创建项目和应用分析
- POJ-2771 Guardian of Decency 最大独立子集
- python中time模块详解_Python time模块详解
- iceworks-cli构建模块说明
- java 只有日期的类_JAVA日期和时间类彻底解决(1)[转]
- std::string删除首字符
- Linux基础知识一
- 第一次立会(2019.3.24)
- 九阴真经 服务器列表文件,《九阴真经》部分服务器互通升级公告
- webpack2.7.0配置不同的打包环境
- 排序算法之 插入排序
- 用上帝视角来看待组件的设计模式
- Spring中的两种AOP织入方式
- 华为加班夜宵报销要主管审批?任正非怒斥:多此一举
- Java图片嵌套图片
- Normalized Cut的C++代码 Linux Win
- 《算法导论》第六章之堆和优先级队列相关算法C语言实现
- teamviewer linux远程开机,Ubuntu远程管理(teamviewer)
- 【Tensorflow】 tf.equal(tf.argmax(y, 1),tf.argmax(y_, 1))用法
- 题目标题: 高斯日记