美文网首页
CAAniamtion的属性和使用

CAAniamtion的属性和使用

作者: 今晚月色 | 来源:发表于2018-11-23 16:29 被阅读168次
镇楼专用

CAAnimation

CAAnimation是所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类。

属性

  • duration:动画的持续时间

  • repeatCount:动画的重复次数

  • repeatDuration:动画的重复时间

  • removedOnCompletion:默认为YES,代表动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态。如果想让图层保持显示动画执行后的状态,那就设置为NO,不过还要设置fillMode为kCAFillModeForwards

  • fillMode:决定当前对象在非active时间段的行为。比如动画开始之前,动画结束之后

  • beginTime:可以用来设置动画延迟执行时间,若想延迟2s,就设置为CACurrentMediaTime()+2,CACurrentMediaTime()为图层的当前时间

  • timingFunction:速度控制函数,控制动画运行的节奏

  • delegate:动画代理

子类

1.CAPropertyAnimation

是CAAnimation的子类,也是个抽象类,要想创建动画对象,应该使用它的两个子类:CABasicAnimation和CAKeyframeAnimation。

  • keyPath 通过指定CALayer的一个属性名称为keyPath(NSString类型),并且对CALayer的这个属性的值进行修改,达到相应的动画效果。比如,指定@”position”为keyPath,就修改CALayer的position属性的值,以达到平移的动画效果。

2.CABasicAnimation

  • fromValue:keyPath相应属性的初始值。

  • toValue:keyPath相应属性的结束值。

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

  • 如果fillMode=kCAFillModeForwards和removedOnComletion=NO,那么在动画执行完毕后,图层会保持显示动画执行后的状态。但在实质上,图层的属性值还是动画执行前的初始值,并没有真正被改变。比如,CALayer的position初始值为(0,0),CABasicAnimation的fromValue为(10,10),toValue为(100,100),虽然动画执行完毕后图层保持在(100,100)这个位置,实质上图层的position还是为(0,0)。

3.CAKeyframeAnimation

CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值。

  • values:就是上述的NSArray对象。里面的元素称为”关键帧”(keyframe)。动画对象会在指定的时间(duration)内,依次显示values数组中的每一个关键帧。

  • path:可以设置一个CGPathRef\CGMutablePathRef,让层跟着路径移动。path只对CALayer的anchorPoint和position起作用。如果你设置了path,那么values将被忽略。

  • keyTimes:可以为对应的关键帧指定对应的时间点,其取值范围为0到1.0,keyTimes中的每一个时间值都对应values中的每一帧.当keyTimes没有设置的时候,各个关键帧的时间是平分的。

  • CABasicAnimation可看做是最多只有2个关键帧的CAKeyframeAnimation。

4.CAAnimationGroup

CAAnimation的子类,可以保存一组动画对象,将CAAnimationGroup对象加入层后,组中所有动画对象可以同时并发运行。

  • animations:用来保存一组动画对象的NSArray。

  • 默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间。

5.CATransition

CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点。UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果。

  • type:动画过渡类型。

  • subtype:动画过渡方向。

  • startProgress:动画起点(在整体动画的百分比)。

  • endProgress:动画终点(在整体动画的百分比)。

相关文章

  • CAAniamtion的属性和使用

    CAAnimation CAAnimation是所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能...

  • 【a标签的使用和属性】

    a标签的使用 属性(属性值) 1、href(需要跳转到哪个页面)(存放跳转的地址url) 2、target(打开目...

  • Dart语法基础-6 setter & getter

    1. get 和 set的使用 使用getter来定义只读的计算属性属性:

  • 监听器和计算属性的区别watch,computed

    计算属性computed和监听器watch区别?1.能使用计算属性computed的尽量使用计算属性,但是计算属性...

  • Properties

    属性分为类型属性和实例属性。使用static和class关键字修饰的属性为类型属性,否则为实例属性。其中stati...

  • js对象与jquery对象

    (一) 区别js对象不能使用jquery对象的方法和属性jquery对象不能使用dom对象的方法和属性 var ...

  • iOS - NSOperation

    NSOperation 简介 NSOperation 使用NSOperation 属性 和 方法1.1 属性1.2...

  • XHTML 1.0 Strict下注意事项

    *本文稍作了解即可。 永远使用小写字母,让引号伴随者属性 所有元素和属性的名字都必须使用小写,所有属性值必须使用双...

  • 使用验证块的属性-验证块属性定义及验证规则

    使用验证块的属性 验证属性(内置验证应用程序块属性和主题中描述的属性)可以用于各种目标,包括类、字段、属性、方法和...

  • 私有属性和私有方法

    私有属性和私有方法是只希望在对象内部使用,不希望在外界被使用的属性和方法。创建格式为:__属性名__方法名当私有属...

网友评论

      本文标题:CAAniamtion的属性和使用

      本文链接:https://www.haomeiwen.com/subject/jqnjqqtx.html