CoreAnimation


1.CABasicAnimation

// position 
CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"position"]; // bounds
CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"bounds.size"]; // opacity
CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"opacity"]; // backgroundColor
// 景色渐变一定用CGColor
CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"backgroundColor"]; // transform.scale
// 以下缩放是中心缩放,若需要自定义缩放点需要设置锚点: [self.firstView.layer setAnchorPoint:CGPointMake(0, 0)];
// 一般,锚点位于图层中心{0.5,0.5},其度量是以单位方形而不是点为参照,无论图层有多大,右下角的坐标都是{1.0,1.0}
CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; // transform.rotation
CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"]; // x ,y ,z 默认是z // transform.translation
CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"]; // x ,y ,z 默认是x // cornerRadius
CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"cornerRadius"]; // borderWidth
CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"borderWidth"];

以position为例

// position
- (void)postionAnimation {
CABasicAnimation *ba = [CABasicAnimation animationWithKeyPath:@"position"];
ba.toValue = [NSValue valueWithCGPoint:self.firstView.center];
ba.duration = 0.8;
ba.delegate = self;
ba.removedOnCompletion = NO; // 动画结束后是否回到原状态,默YES.若为NO,则 fillMode 须为 kCAFillModeForwards
ba.fillMode = kCAFillModeBackwards;
ba.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; // 动画的时间节奏控制
[self.secondView.layer addAnimation:ba forKey:@"position"];
}

2.CAKeyframeAnimation

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated]; [self valuesAnimation];
} - (void)valuesAnimation {
CAKeyframeAnimation *kf = [CAKeyframeAnimation animationWithKeyPath:@"position"];
kf.fillMode = kCAFillModeForwards;
kf.removedOnCompletion = NO;
kf.duration = 3;
kf.repeatCount = 0;
NSValue *value1 = [NSValue valueWithCGPoint:CGPointMake(0, 120)];
NSValue *value2 = [NSValue valueWithCGPoint:CGPointMake(190, 20)];
NSValue *value3 = [NSValue valueWithCGPoint:CGPointMake(20, 300)];
NSValue *value4 = [NSValue valueWithCGPoint:CGPointMake(300, 150)];
kf.values = @[value1,value2,value3,value4]; [self.firstView.layer addAnimation:kf forKey:@"valuesKeyframe"];
} - (void)pathAnimation {
CAKeyframeAnimation *kf = [CAKeyframeAnimation animationWithKeyPath:@"position"];
kf.duration = 3.0f;
kf.removedOnCompletion = NO;
kf.fillMode = kCAFillModeForwards;
kf.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, NULL, CGRectMake(0, 0, 370, 300)); kf.path = path;
CGPathRelease(path); [self.firstView.layer addAnimation:kf forKey:@"pathKeyframe"];
}

3.CATransition
/***********type:动画过渡类型***********************

        kCATransitionFade 交叉淡化过渡
kCATransitionMoveIn 新视图移到旧视图上面
kCATransitionPush 新视图把旧视图推出去
kCATransitionReveal 将旧视图移开,显示下面的新视图

        kCATransitionCube 立方体翻滚效果
kCATransitionOglFlip 上下左右翻转效果
kCATransitionSuckEffect 收缩效果,如一块布被抽走
kCATransitionRippleEffect 水滴效果
kCATransitionPageCurl 向上翻页效果
kCATransitionPageUnCurl 向下翻页效果
kCATransitionCameraIrisHollowOpen 相机镜头打开效果
kCATransitionCameraIrisHollowClos 相机镜头关闭效果

************************************************************/

/***********subType:动画过渡方向***********************

        kCATransitionFromRight 从右边
kCATransitionFromLeft 从左边
kCATransitionFromTop 从顶部
kCATransitionFromBottom 从底部

*************************************************************/
以cameraIrisHollowOpen为例

 - (void)cameraIrisHollowTransition {
CATransition *t = [CATransition animation];
t.type = @"cameraIrisHollowOpen";
// t.type = @"cameraIrisHollowClos";
t.subtype = kCATransitionFromLeft;
t.duration = 1.5;
self.firstView.backgroundColor = [UIColor colorWithRed:0.2 green:0.3 blue:0.6 alpha:1];
[self.firstView.layer addAnimation:t forKey:@"pageCurlTransition"];
}

4.CASpringAnimation 继承自CABasicAnimation

/**
* @author Jack Lee, 16-05-17 22:05:53
*
* @brief after iOS9.0
*/
- (void)springAnimation {
CASpringAnimation *spring = [CASpringAnimation animationWithKeyPath:@"bounds.size"];
spring.mass = 10; // 质量,影响图层运动时的弹簧惯性,质量越大,弹簧拉伸和压缩的幅度越大
spring.stiffness = 5000; // 刚度系数(劲度系数/弹性系数),刚度系数越大,形变产生的力就越大,运动越快
spring.damping = 100; // 阻尼系数,阻止弹簧伸缩的系数,阻尼系数越大,停止越快
spring.initialVelocity = 5; // 初始速率,动画视图的初始速度大小;速率为正数时,速度方向与运动方向一致,速率为负数时,速度方向与运动方向相反
spring.duration = spring.settlingDuration; // 结算时间 返回弹簧动画到停止时的估算时间,根据当前的动画参数估算,通常弹簧动画的时间使用结算时间比较准确
spring.toValue =[NSValue valueWithCGSize:self.firstView.bounds.size];
spring.removedOnCompletion = NO;
spring.fillMode = kCAFillModeForwards;
[self.secondView.layer addAnimation:spring forKey:@"spring"];
}

5.CAAnimationGroup

- (void)groupAnimation {
CABasicAnimation *p = [CABasicAnimation animationWithKeyPath:@"position"];
p.toValue = [NSValue valueWithCGPoint:self.firstView.center]; CABasicAnimation *o = [CABasicAnimation animationWithKeyPath:@"opacity"];
o.toValue = @(0.2); CABasicAnimation *b = [CABasicAnimation animationWithKeyPath:@"bounds.size"];
b.toValue = [NSValue valueWithCGSize:self.firstView.bounds.size]; CAAnimationGroup *g = [CAAnimationGroup animation];
g.animations = @[p,o,b];
g.duration = 0.8;
g.removedOnCompletion = NO;
g.fillMode = kCAFillModeForwards;
g.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; [self.secondView.layer addAnimation:g forKey:@"groupAnimation"];
}
 

CoreAnimation的更多相关文章

  1. iOS CoreAnimation详解(一) 有关Layer的动画

    以前由于项目需要 也写了一些动画 ,但是知识不系统,很散.这段时间趁着项目完成的空袭,来跟着大神的脚步系统的总结一下iOS中Core Animation的知识点. 原博客地址:http://blog. ...

  2. CoreAnimation 之CATextLayer

    如果你想在一个图层中显示文字,完全可以借助图层代理直接将Core Graphics写入图层的内容(这就是UILabel的精髓).如果雨果寄宿于图层的视图,直接在图层上操作,其实相当繁琐.你要为每一个显 ...

  3. 二、CoreAnimation之寄宿图详解

    在之前的图层树中我们知道,可以使用CALayer对象创建一些有背景颜色的图层,其实使用CALayer,不仅可以利用其展示背景颜色,还可以展示图片.而这些展示内容,其实就是CALayer的寄宿图.这一节 ...

  4. 一、CoreAnimation之图层树详解

    CoreAnimation :在字面意思为“核心动画”,但是如果您认为它仅仅是一个动画框架,那可能就要错过一些经典功能了.动画,只是CoreAnimation功能的一小部分,毕竟人家的源头是一个叫做L ...

  5. iOS CoreAnimation 核心动画

    一 介绍 一组非常强大的动画处理API 直接作用在CALAyer上,并非UIView(UIView动画) CoreAnimation是所有动画的父类,但是不能直接使用,应该使用其子类 属性: dura ...

  6. ios基础篇(二十五)—— Animation动画(UIView、CoreAnimation)

    Animation主要分为两类: 1.UIView属性动画 2.CoreAnimation动画 一.UIView属性动画 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIVie ...

  7. iOS关于CoreAnimation动画知识总结

    一:UIKit动画 在介绍CoreAnimation动画前先简单介绍一下UIKit动画,大部分简单的动画都可以使用UIKit动画实现,如果想实现更复杂的效果,则需要使用Core Animation了: ...

  8. CoreAnimation方法汇总

    使用CoreAnimation一般分为三个部分:1.创建执行动画的CALayer 2.创建动画 3.CALayer 添加Animation CoreAnimation是以锚点为基础. CoreAnim ...

  9. CoreAnimation笔记

    核心动画继承结构 CoreAnimation Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Ani ...

  10. iOS开发之 动画CoreAnimation

    http://blog.treney.com/index.php/archives/CoreAnimation.html?hmsr=toutiao.io&utm_medium=toutiao. ...

随机推荐

  1. (转载)Chrome 快捷键 整理版

    (转载)http://www.douban.com/group/topic/13802153/ chrome窗口和标签页快捷键: Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shi ...

  2. C# WinForm窗体界面设置问题

    设置方法: 一:Form对象 属性: 设计中的Name:窗体类的类名AcceptButton:窗口的确定按钮CancelButton:窗口按ESC的取消按钮 1.外观 Backcolor:背景颜色Fo ...

  3. 记录一次MVC3升级MVC4遇到的问题

    前些天,项目组将项目从mvc3升级至mvc4,完了之后,发现突然涌现出一大堆问题.主要是在前端,Razor引擎升级导致的. Razor是从mvc3开始引入的,用过mvc2的就会知道,Razor用起来确 ...

  4. weekend110(Hadoop)的 第五天笔记

    (2015年1月24日) 课程目录 01-zookeeper1 02-zookeeper2 03-NN高可用方案的要点1 04-hadoop-HA机制的配置文件 05-hadoop分布式集群HA模式部 ...

  5. [学习笔记]设计模式之Builder

    写在前面 为方便读者,本文已添加至索引: 设计模式 学习笔记索引 作为一个新入职的魔导士呢,哦不,是程序员,我以为并没有太多机会去设计项目的软件架构.但是,工作一段时间之后,自己渐渐意识到,哪怕是自己 ...

  6. JOptionPanel类的解析

    JOptionPane类提示框的一些常用的方法 XMLOracleSwing  最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法. 很方便的,于是就简单的整理 ...

  7. malloc()与calloc差别

    Both the malloc() and the calloc() functions are used to allocate dynamic memory. Each operates slig ...

  8. C# richTextBox编辑器

    附件:http://files.cnblogs.com/xe2011/CSHARP_RichTextBoxEditor.rar 完整的转到这里 http://www.cnblogs.com/xe201 ...

  9. C# 枚举 字符串 转换

    普通方法 这种方法尽管很SB但确实可以解决问题 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { st ...

  10. BTrace系列

    http://blog.csdn.net/mgoann/article/category/473844 http://www.cnblogs.com/serendipity/archive/2012/ ...