美文网首页
核心动画知识点总结

核心动画知识点总结

作者: Shawn_ | 来源:发表于2016-01-26 20:58 被阅读111次

核心动画

  • CAlayer
  • 图层颜色都是CGColor
  • 每个View都有涂层
    • 系统帮你创建的层是主/根层
  • 每个层都有个存放内容的层,跟主层是==平级==,在最外层显示

  • UIImageView

    • 默认UIImageView的图片不是显示到主层的子层中,放在内容层上
      UIView直接修改layer,可以修改里面的内容;UIImageView要修改根层,因为里面的内容是放在layer中的一个contents中的一个属性中
      TableView 的sale,不要直接设置layer来进行裁剪属性,这样会影响性能下降
  • 正方形可以通过修改圆角半径

  • 长方形的时候不能设置圆角变成圆

    • 做动画的时候,尽量不要使用修改圆角半径做动画(一直保持圆形,通过裁剪)
    • 可以直接设置主层的边款和颜色

CALayer形变

  • 形变是3D效果

  • 模糊半径

    //设置模糊半径
      self.xxx.layer.shadowRadius = 0;
    
  • 设置边框的宽度是往里走的

 self.redView.layer.borderWidth = 3;

ACLayer的疑惑

  • UIKit只能在iOS中使用
  • 主要是为了跨平台

  • UIView和CALayer的选择
    • UIView 多了事件处理功能
    • CALayer不能处理用户的触摸事件

position和anchorePoint

  • position
  • positon 相当于View中的center
  • 是用来设置CALayer在父层中的位置
  • 父类左上角为原点
  • anchorePoint

  • 成为锚点 定位点

    • 决定CALayer身上哪个点会在position属性所指的位置
    • 以自己的左上角为原点
    • 默认值是(0.5,0.5)
    • anchorePoint定位到position点的位置
    • 这两个属性的点一直保持重合
    • 无论设置position还是anchorePoint位置都会发生变化
    • 取值范围 0 ~1 , 默认值(0.5,0.5)
    • UIView的Center就是它内部layer的Position

隐式动画

  • 事务:
    • 开启事务
    • 设置时长
  • 提交事务
  • 手动创建的CALayer对象,都存在着隐式动画(非根层)
  • 判断是否是可动画属性(Animatable)
  • 根层没隐式动画.

时钟

  • 最短路径,两边路径一样,默认逆时针旋转
  • 所有的旋转和缩放都是绕着锚点进行的
  • 在系统头文件,看见位移的符号就可以用 | 的方式来操作
  • 需要设置锚点
    • 默认一个控件或者layer是绕着锚点旋转
    • 算出旋转的度数
  • 代码实现构建思路
    • 导入钟表图片
    • 添加控件 (秒 分 时);
    • 指针不停的转动,用到定时器
    • 角度转弧度
    • 每分钟转时针也要转一点 30/60 每分钟 时针转的度数
    • 尖尖的感觉 可以设置圆角半径

core Animation (核心动画)

  • 跨平台
    • 在后台操作,不会阻塞主线程
    • 直接作用在CALayer上,不是 UIView
  • 核心动画继承结构


    核心动画继承结构
  • 动画功能
    • CAAnimationGroup
    • CATransition(转产动画)使用比例非常大
    • CAPropertyAnimation(子类有具体功能)
      • CABasicAnimation(单个)
      • CAKeyframeAnimation (多个)
        • 可以让动画根据路径走
  • 核心动画为什么搞这么多对象
    • 为了更加面向对象

CABasicAnimation

  • 动画的本质就是修改图层的某些属性
    • 核心动画,利用核心动画修改Layer的某些属性
  • 创建核心动画
  • 描述修改Layer的哪个属性
  • 属性keyPath
  • 自动提示宏
//直接在宏的参数前添加 #,就可以生成这个参数的c的字符串
#define keyPath(objc,keyPath) @(((void)objc.keyPath,#keyPaht))
//描述要修改layer的属性
  • 修改Layer属性的值

    • fromeValue (动画的起点)
    • toValue(动画的终点)
  • 取消反弹

     1. 在动画完成的时候,不要把动画销毁
       2. 动画永远保持最新的状态(填充模式)c语言的宏都是k开头;
    

CAKeyframeAnimation

  • 图标抖动效果(2维动画)
anim.keyPath =@"transform.rotation";
//自动反转(怎么样去,那么动画怎么回来)
anim.autoreverses = YES ;
  • 直接传值
    • 角度转换成弧度
    • 定义成个宏(然后传入参数)
    • 帧动画可以多个值进行传递
    • 还可以传递路径 (根据路径进行移动)
      • 创建帧动画对象
      • 描述修改layer的属性
      • 绘制路径
      • 添加路径到动画路径中去
      • 将动画添加到layer中

CATransition (转场动画)

  • 需求(图片轮转播放)
  • 只要切换界面,都可以使用转场动画
  • 谁切换界面,就添加到谁上面
    • 点击屏幕切换图片
    • 图片名字为变量,利用static,只用初始化一次
  • 界面切换的代码
    • 必须都放在一起
  • 转场动画的代码
    • 转场动画

    • 转场类型

    • 转场动画代码必须和界面切换的代码放在一起

    • 小细节

      //通过KVC一般是做快速旋转,平移,缩放
      [self.imageV.layer setValue:value forKeyPath@"transform.rotation.x"];
      
      //用事务关闭隐式动画
      [CATransaction setDisableActions:YES];
      

相关文章

  • 核心动画编程(一)

    所有知识点来自《核心动画编程指南》知识点 一.动画介绍 核心动画类分为:图层类,动画和计时类,布局和约束类,事务类...

  • 核心动画知识点总结

    核心动画 CAlayer 图层颜色都是CGColor 每个View都有涂层系统帮你创建的层是主/根层 每个层都有个...

  • ABAP整体知识大概总结

    ABAP核心知识点总结:

  • iOS动画总结(收集)

    iOS动画 1.iOS动画专题·UIView二维形变动画与CAAnimation核心动画 2.iOS动画总结(Co...

  • CALayer动画专题

    CALayer动画专题 来自《ios核心动画高级技巧》书中的一些例子总结,包含了 隐式动画 显式动画 缓冲-动画速...

  • 核心动画知识点

    1> CALayer简介 2> 属性和新建图层 * 01-CALayer01-基本使用 掌握 * 怎么设置阴影:s...

  • iOS 核心动画

    用了好长时间的动画了,一直没有总结,打算把它总结一下,做个记录。 核心动画分类:CABasicAnimation ...

  • ValueAnimator的使用说明

    1.前言 动画是Android中常用的知识点,自然需要熟练掌握属性动画,而属性动画有两个核心类,一个是ValueA...

  • 动画知识点总结

    为无为,事无事,味无味。大小多少,报怨以德。图难于其易,为大于其细。天下难事必作于易,天下大事必作于细。是以圣人终...

  • 安卓自定义动画

    本篇简书主要总结一下今天学习自定义动画效果的知识点,学习内容主要包括 1.补间动画和属性动画的区别 2.属性动画的...

网友评论

      本文标题:核心动画知识点总结

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