核心动画知识点总结

核心动画

  • 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];
      
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,066评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,418评论 6 30
  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。 1.UIView...
    请叫我周小帅阅读 3,053评论 1 23
  • Core Animation Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,...
    45b645c5912e阅读 2,996评论 0 21
  • 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你...
    Yiart阅读 3,762评论 3 34