CAAnimation动画

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 : 控制动画的显示节奏系统提供五种值选择,分别是:
k CAMediaTimingFunctionLinear 线性动画
k CAMediaTimingFunctionEaseIn 先慢后快(慢进快出)
k CAMediaTimingFunctionEaseOut 先块后慢(快进慢出)
k CAMediaTimingFunctionEaseInEaseOut 先慢后快再慢
k CAMediaTimingFunctionDefault 默认,也属于中间比较快
  •   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 移动 参数:移动到的点 (100100
    opacity 透明度 参数:透明度 0.5
    backgroundColor 背景颜色 参数:颜色 (id)[[UIColor redColor] CGColor]
    cornerRadius 圆角 参数:圆角半径 5
    borderWidth 边框宽度 参数:边框宽度 5
    bounds 大小 参数:CGRect
    contents 内容 参数:CGImage
    contentsRect 可视内容 参数:CGRect 值是01之间的小数
    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 : 估算时间 返回弹簧动画到停止时的估算时间,根据当前的动画参数估算








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值