核心动画CABasicAnimation

Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动 画效果,而且往往是事半功倍!

1.开发步骤:

初始化一个动画对象(CAAnimation)并设置一些动画相关属性

添加动画对象到层(CALayer)中,开始执行动画

Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程

2.Core Animation的主要类

提供显示内容的图层类:CALayer及其子类

动画和计时类:CAAnimation及其子类、CAMediaTiming

布局和约束类:CAConstraint、CAConstraintLayoutManager

事务类,在原子更新的时候组合图层类:CATransaction、CAActiontransition

3.CABasicAnimation基本动画,是CAPropertyAnimation的子类

属性说明:

fromValue:keyPath相应属性的初始值

toValue:keyPath相应属性的结束值

3.1动画过程说明:

随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue 渐渐地变为toValue

keyPath内容是CALayer的可动画Animatable属性

如果fillMode=kCAFillModeForwards同时removedOnComletion=NO,那么在动画执 行完毕后,图层会保持显示动画执行后的状态。但在实质上,图层的属性值还是动画执行前的 初始值,并没有真正被改变。

上代码:

// 1 CAanimation

//bounds transform

//KeyPath:指定layer的一个属性值,通过修改该属性值达到动画的效果

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];

//2 设置属性

//1>动画的起始值

animation.fromValue = @0.5;

//2>动画的结束值

animation.toValue = @3;

//---------    CAMediaTiming----------

//3>动画的持续时间

animation.duration = 3;

//4>自动回放 (多花一倍时间)

//    animation.autoreverses = YES;

//5>动画完成后移除动画 (如果不移除动画,需要和填充方式一起使用)

animation.removedOnCompletion = NO; //(默认是yes)

//6>填充方式

animation.fillMode = kCAFillModeForwards;

//    animation.fillMode = kCAFillModeBackwards;

/*

kCAFillModeForwards:保留动画结束后的效果

kCAFillModeBackwards:动画开始之前,会提前进入动画开始的效果(开延时才可以看出)

kCAFillModeBoth:2者都有

kCAFillModeRemoved:2者都没有

*/

//7>beginTime:开始时间 (延迟一秒之后执行动画)

//    animation.beginTime = CACurrentMediaTime()+1;

//8>timeOffset 时间偏移量 (开始执行第2秒的动画,执行到指定的持续时间为止)

//    animation.timeOffset = 2;

//9>repeatCount:重复次数

animation.repeatCount = 2;

//10>repeatDuration:重复的总时间 (如果和重复次数有冲突,遵循重复时间)

animation.repeatDuration =4;

//11>speed:动画的速度 (和持续时间冲突)

animation.speed =.3;

//3 将动画对象添加到layer上面

//key:标示

//animation对象在这copy一份;所以属性要写在添加之前

[self.myImageView.layer addAnimation:animation forKey:@"animation"];

时间: 2024-12-17 07:26:01

核心动画CABasicAnimation的相关文章

猫猫学IOS(三十九)UI之核心动画之CABasicAnimation(基础动画)

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 一.CABasicAnimation简介 CAPropertyAnimation的子类 属性解析: fromValue:keyPath相应属性的初始值 toValue:keyPath相应属性的结束值 随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue渐渐地变为toValue 如

核心动画——Core Animation

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

核心动画(基础动画)-转

一.简单介绍   CAPropertyAnimation的子类 属性解析: fromValue:keyPath相应属性的初始值 toValue:keyPath相应属性的结束值  随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue渐渐的变为toValue.  如果 fillMode=kCAFillModeForwards和removedOnComletion=NO,那么在动画执行完毕后,图层会保持显示动画执行后的状态.但在实质上,图层的属性值还是动

iOS:核心动画之基本动画CABasicAnimation

基本动画,是CAPropertyAnimation的子类 属性说明: fromValue:keyPath相应属性的初始值 toValue:keyPath相应属性的结束值 动画过程说明: 随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue渐渐地变为toValue keyPath内容是CALayer的可动画Animatable属性 如果fillMode=kCAFillModeForwards同时removedOnComletion=NO,那么在动画执

核心动画基础动画(CABasicAnimation)关键帧动画

1.在iOS中核心动画分为几类: 基础动画(CABasicAnimation) 关键帧动画(CAKeyframeAnimation) 动画组(CAAnimationGroup) 转场动画(CATransition) 2.CAAnimation:核心动画的基础类,不能直接使用,负责动画运行时间,速度的控制,本身实现了CAMediaTiming协议 3.CAPropertyAnimation:属性动画也是基类(通过属性进行动画设置,注意是动画属性),不能直接使用. CABasicAnimation:

CABasicAnimation基础核心动画

核心动画之作用在层上面.     动画的本质是改图层的某一个属性.     CABasicAnimation *anim = [CABasicAnimation animation];     图层有那些属性,这里才能写那些属性.     anim.keyPath = @"transform.scale";     anim.toValue = @0.5;     告诉动画完成的时候不要移除     anim.removedOnCompletion = NO;     保存动画最前面的

核心动画(CAKeyframeAnimation,CABasicAnimation)

一,核心动画常用的三种例子 view的核心动画其体现就是把view按照指定好的路径进行运动,针对的是view的整体. [view.layer addAnimation:动画路径 forKey:@"绑定动画路径的键值"]; A,view的整体按照指定好的路径进行运动,里面的子view固定在view不动情况: 1)创建需要显示的动画路径(动画路径可以是UIBezierPath,也可以是某个参数或点坐标等,如果是后者,则常常设置fromValue和toValue,通过它们来确定动画路径) C

核心动画

在ViewController.m中. @interface ViewController ()@property(nonatomic, strong) UIView * MyView;@end @implementation ViewController - (void)viewDidLoad {    [super viewDidLoad];            self.MyView = [[UIView alloc] initWithFrame:CGRectMake(100, 100,

基本动画CABasicAnimation - 完成之后闪回初始状态

基本动画CABasicAnimation 结束之后,默认闪回初始状态,那怎么解决呢? position需要设备两个属性: 1 // MARK: - 结束后不要闪回去 2 anim.removedOnCompletion = NO; 3 anim.fillMode = kCAFillModeForwards; 设置之后,不会再闪回去,但其实控件的位置并未改变,还在原来的位置,只是"显示层"挪到了新位置. 可以通过动画的代理方法来实现: // MARK: - 通过代理方法,修正按钮的位置!