核心动画的简单理解

来源:互联网 发布:新理念外语网络教学app 编辑:程序博客网 时间:2024/05/21 09:58

CoreAnimation (核心动画框架)

  • 都是基于CALayer 图层
    • UIView 可以跟用户交互
    • CALayer 不可以跟用户交互 只能显示内容
    • UIView ->rootLayer 发生改变子图层也会发生改变
    • CALayer 发生改变 子图层 不会跟随发生改变
    • button 不只有一个视图 改变的知识其中一个视图的rootLayer —> 显示 未被裁切的边框
    • CALayer 自带动画效果 (当改变他的属性值的时候)——>这种动画效果叫做隐式动画
  • 隐式动画的属性
    • bounds 边境范围
    • position 中心点
    • zPosition z轴中心点 类似UIView 中的center
    • anchorPoint 锚点 ✮✮✮✮✮ 的、 最小值是0 0 最大值是1 1 默认锚点是与中心点重合的 默认值是0.5 0.5 当视图 改变的时候 是以锚点为基准改变的锚点的值与位置
0,0 =  在图层的左上角0,1 =  在图层的左下角1,0 = 在图层的右上角1,1 = 在图层的右下角
  - anchorPointZ Z轴锚点                transform 转换形态                frame NO. Animatable 坐标                hidden 隐藏                doubleSided 图层背面是否显示                geometryFlipped 翻转 颠倒                masksToBounds 裁切边境                contents 内容                opaque 不透明度                allowsEdgeAntialiasing 是否使用 变形后的抗锯齿                backgroundColor 背景颜色                borderWidth 边框宽                borderColor 边框颜色                opacity 不透明度                shadowColor 阴影颜色                shadowOpacity 阴影不透明度                rasterizationScale 防止Retina屏幕像素化                shadowOffset 阴影偏移量                shadowRadius 阴影的半径
  • CAAnimation父类 不能直接使用
    • CAPropertyAnimation 属性动画 通过属性值的改变 产生动画效果
      • CABasicAnimation 基础动画 只能是两个点直接的变化
        • CASpringAnimation 弹簧动画
        • CAKeyframeAnimation 关键帧动画 可以添加多个点的变化 或者添加路径
          • CAAnimationGroup 动画组 可以添加多重动画 达到预期效果
          • CATransition 转场动画 任意的视图都可以使用 视图切换的时候 添加效果

旋转动画

1.使用基础动画 其中一个值的变化
2.改变哪一个属性rotation.z
可以通过改变animationWithKeyPath来改变动画的属性:
transform.scale = 比例转换
transform.scale.x
transform.scale.y
transform.rotation.z
opacity = 透明度
zPosition
backgroundColor 背景颜色
cornerRadius 柺角
borderWidth 边框的宽度
bounds
contents 内容
contentsRect
frame
hidden
masksToBounds
position
shadowColor
shadowOffset
shadowOpacity
shadowRadius

CASpringAnimation 弹簧动画

弹簧动画——>(父类)CABasicAnimation ——>只能设置 fromValue toValue byValue
CAAnimation 只是改变图层的动画效果 并没有改变正式的改变 视图、图层 的属性值

  • 属性:
    • mass 质量——>影响图层运动时的弹簧惯性 质量越大 幅度越大
    • stiffness 刚度(劲度/弹性)刚度越大 形变产生的里就越大 运动越快
    • damping 阻力 阻力越大 停止越快
    • initialVelocity 初始速率,动画视图的初始速度大小 速率为正数时 速度方向与运动方向一致 速率为负数时 速度方向与运动方向相反
    • settlingDuration 获得动画完成的预估时间

CAKeyframeAnimation 关键帧动画

两个值发生改变 中间产生的动画效果叫做补间动画 基础动画又叫做不见动画
关键帧动画与 基础动画的区别:
基础动画只能是某个属性的初始值到另一个值 产生的动画效果
关键帧动画 支持多个值(values)或者一个路径(path)

  • 属性
    • values:值的数组
    • path:值得路径
    • keyTimes:时间值(0,1)
    • timingFunctions:速度控制的数组
    • calculationMode:动画样式
      • kCAAnimationLinear 自定义控制动画的时间(线性)可以设置keyTimes
      • kCAAnimationDiscrete 离散动画 没有任何补间动画 使用keytimes@[@0.3,@0.5,@1.0];
      • kCAAnimationPaced 节奏动画 自动计算动画的运动时间
      • kCAAnimationCubic 曲线动画 需要设置timingFunctions
      • kCAAnimationCubicPaced 节奏曲线动画 自动计算
    • ritationMode:旋转的样式
  • kCAAnimationRotateAuto 自动旋转
  • kCAAnimationRotateAutoReverse 自动翻转

CAAnimationGroup 动画组

  • CAAnimationGroup 动画组 可以让一些动画同时去执行
  • animations 动画组中唯一的一个属性 ——>动画的数组——>动画组设置的持续时间会影响到动画组内部的动画的持续时间
  • 动画组中设置的时间控制类属性会影响到动画组中的设置的时间控制类属性
    在动画组中 统一去设置 媒体时间控制类属性

CATransitation转场动画

type
subtype
startProgress 开始的进度
endProgress 结束的进度

0 0
原创粉丝点击