频道栏目
首页 > 资讯 > 其他 > 正文

CAAnimation动画详解

18-05-17        来源:[db:作者]  
收藏   我要投稿

  Core Animation类的继承关系图

  1. CAAnimation 遵循 CAMediaTiming 协议

  1.duration: 动画的时间。2.beginTime:指定动画开始的时间。从开始延迟几秒的话,设置为【CACurrentMediaTime() + 秒数】 的方式。3.repeatCount:默认的是 0,动画只会播放一次。如果指定一个无限大的重复次数,使用 MAXFLOAT 。这个不应该和 repeatDration 属性一块使用。4.autoreverses:动画结束时是否执行逆动画。5.repeatDuration:这个属性指定了动画应该被重复多久。动画会一直重复,直到设定的时间用完。同上它不应该和 repeatCount 一起使用.6.fillMode: removedOnComletion 如果fillMode=kCAFillModeForwards和removedOnComletion=NO,那么在动画执行完毕后,图层会保持显示动画执行后的状态。但在实质上,图层的属性值还是动画执行前的初始值,并没有真正被改变。

  2.CAAnimation类

  1.timingFunction : 控制动画的显示节奏系统提供五种值选择,分别是:kCAMediaTimingFunctionLinear 线性动画kCAMediaTimingFunctionEaseIn 先慢后快(慢进快出)kCAMediaTimingFunctionEaseOut 先块后慢(快进慢出)kCAMediaTimingFunctionEaseInEaseOut 先慢后快再慢kCAMediaTimingFunctionDefault 默认,也属于中间比较快

  2.delegate : 动画代理。能够检测动画的执行和结束。

  @interface NSObject (CAAnimationDelegate)

  

  - (void)animationDidStart:(CAAnimation *)anim;

  - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;

  @end

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

  3.CAAnimationGroup 类 --> CAAnimation

  1.animations: 组动画

  4.CATransition 类 --> CAAnimation

  1.type : 过渡动画的动画类型,系统提供了四种过渡动画。

  - kCATransitionFade 渐变效果

  - kCATransitionMoveIn 进入覆盖效果

  - kCATransitionPush 推出效果

  - kCATransitionReveal 揭露离开效果

  私有API提供了其他很多非常炫的过渡动画,比如@"cube"、@"suckEffect"、@"oglFlip"、 @"rippleEffect"、@"pageCurl"、@"pageUnCurl"、@"cameraIrisHollowOpen"、@"cameraIrisHollowClose"等。

  注意点

  私有api,不建议开发者们使用。因为苹果公司不提供维护,并且有可能造成你的app审核不通过。subtype : 过渡动画的动画方向

  - kCATransitionFromRight 从右侧进入

  - kCATransitionFromLeft 从左侧进入

  - kCATransitionFromTop 从顶部进入

  - kCATransitionFromBottom 从底部进入startProgress:动画起点(在整体动画的百分比)endProgress:动画终点(在整体动画的百分比)

  5.CAPropertyAnimation 类 --> CAAnimation

  keyPath属性: keyPath可以使用的key

  position 默认

  transform.rotation.x 围绕x轴翻转 参数:角度 angle2Radian(4)

  transform.rotation.y 围绕y轴翻转 参数:同上

  transform.rotation.z 围绕z轴翻转 参数:同上

  transform.rotation 默认围绕z轴

  transform.scale.x x方向缩放 参数:缩放比例 1.5

  transform.scale.y y方向缩放 参数:同上

  transform.scale.z z方向缩放 参数:同上

  transform.scale 所有方向缩放 参数:同上

  transform.translation.x x方向移动 参数:x轴上的坐标 100

  transform.translation.y x方向移动 参数:y轴上的坐标

  transform.translation.z x方向移动 参数:z轴上的坐标

  transform.translation 移动 参数:移动到的点 (100,100)

  opacity 透明度 参数:透明度 0.5

  backgroundColor 背景颜色 参数:颜色 (id)[[UIColor redColor] CGColor]

  cornerRadius 圆角 参数:圆角半径 5

  borderWidth 边框宽度 参数:边框宽度 5

  bounds 大小 参数:CGRect

  contents 内容 参数:CGImage

  contentsRect 可视内容 参数:CGRect 值是0~1之间的小数

  hidden 是否隐藏

  shadowColor

  shadowOffset

  shadowOpacity

  shadowRadius

  6.CABasicAnimation 类 -->CAPropertyAnimation --> CAAnimation

  设定动画的开始帧和结束帧

  设定动画开始和结束帧时的状态。设定的值会变为KeyPath所指定的属性的值。

  fromValue: 所改变属性的起始值toValue: 所改变属性的结束时的值(绝对值)byValue: 终了值(相对值) 所改变属性相同起始值的改变量

  7.CAKeyframeAnimation类 -->CAPropertyAnimation -->CAAnimation

  values:就是上述的NSArray对象。里面的元素称为”关键帧”(keyframe)。动画对象会在指定的时间(duration)内,依次显示values数组中的每一个关键帧path:可以设置一个CGPathRef\CGMutablePathRef,让层跟着路径移动。path只对CALayer的anchorPoint和position起作用。如果你设置了path,那么values将被忽略keyTimes:可以为对应的关键帧指定对应的时间点,其取值范围为0到1.0,keyTimes中的每一个时间值都对应values中的每一帧.当keyTimes没有设置的时候,各个关键帧的时间是平分的

  8.CASpringAnimation--> CABasicAnimation -->CAPropertyAnimation -->CAAnimation

  mass : 质量,影响图层运动时的弹簧惯性,质量越大,弹簧拉伸和压缩的幅度越大stiffness : 刚度系数(劲度系数/弹性系数),刚度系数越大,形变产生的力就越大,运动越快damping : 阻尼系数,阻止弹簧伸缩的系数,阻尼系数越大,停止越快initialVelocity : 初始速率,动画视图的初始速度大小 Defaults to zero速率为正数时,速度方向与运动方向一致,速率为负数时,速度方向与运动方向相反settlingDuration : 估算时间 返回弹簧动画到停止时的估算时间,根据当前的动画参数估算

相关TAG标签
上一篇:C++类模板实例说明
下一篇:介绍下vb中使用正则的几个方法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站