1、Core Animation是跨平台的,支持IOS和Mac OS X环境

2、核心动画操作的对象不是UIView而是CALayer,CALayer是核心动画的基础,

可以做圆角、阴影、边框等效果

3、每个UIView内部都有一个Layer的属性

4、在实现核心动画时,本质上是将CALayer中得内容转换成位图,从而便于图形硬件的操纵。

5、因为Core Animation是跨平台的,基于QuartzCore框架,在Core Animation中不能使用任何

跟UI相关的方法。[view.layer setShadowColor:[UIColor blueColor].CGColor];,之所以要用CGColor进行转换,因为UIkit框架

,仅能用于IOS平台

6、在UIImageView中,图层不止一个,如果要实现圆角效果,需啊哟设置一个遮罩属性,

masksToBounds属性可以让imageView中所有子图层跟随imageView一起变化

7、在UIImageView中,如果设置了MasksToBounds属性,imageView的阴影效果无效

8、形变参数使用set方法时,只能应用一种形变

9、利用keypath设置形变
    //平移
    [imgView.layer setValue:@-100 forKeyPath:@"transform.translation.y"];
    //缩放
    [imgView.layer setValue:@1.0 forKeyPath:@"transform.scale"];
    //旋转
    [imgView.layer setValue:@M_PI_2 forKeyPath:@"transform.rotation.z"];

10、图层和视图之间的关系

  创建视图对象时,视图会自己创建一个层,视图在绘图(如drawRect:)时,会将内容画在自己的层上,

当视图在蹭上完成绘图后,系统会将图层拷贝至屏幕,每个视图都有一个层,而每个图层又可以有多个子层

11、Layer的设计目的不是为了取代视图,因此不能基于CALayer创建一个独立的可视化组件。

12、layer的设计目的是提供视图的基本可视内容,从而提高动画执行效率

13、layer除了提供可视内容外,layer不负责视图的时间响应、内容绘制等工作,同时layer不能参与到响应链中

14、

15、获取当前图层或使用静态方法layer初始化CALayer后,可以设置一下属性

16、锚点:主要控制图层的位置以及旋转的轴(0-1,0-1)

锚点中x,y分别对应图层尺寸的比例,从0 - 100%的定位点

通过比例,锚点不需要知道图层具体的大小

定位时,通过锚点寻找position,同时移动图层

利用锚点移动图层时,不需要知道图层的大小,只需要知道比例就行了

旋转、缩放、平移都是针对锚点的

17、在关节动画中可以移动锚点,保证不会肢体分离

18、每一个UIView内部默认关联一个CALayer,称这个layer为root layer

所有的非root layer 都存在着隐式动画,隐式动画的默认市场为1/4秒。

19、layer就是用来看的,并不能交互

20、

21、要在CALayer上绘图,有两种方式:

  1、创建一个CALayer的子类,然互覆盖drawInContext:方法

,可以使用Quartz2D API在其中进行绘图

  2、设置CALayer的delegate,然后让delegate视线drawLayer:inContext方法进行绘图

注:

  1、不能再将UIView设置为这个CALayer的delegate,因为UIView对象已经是内部层的delegate

再次设置会出现问题

  2、无论使用哪种方法,都必须向层发送setNeedsDisplay消息,以触发响应绘图方法的调用

22、不能将视图设置为layer的代理delegate

23、

  

CALayer笔记的更多相关文章

  1. 【好程序员笔记分享】——UIView与CALayer详解

    -iOS培训,iOS学习-------型技术博客.期待与您交流!------------ UIView与CALayer详解 研究Core Animation已经有段时间了,关于Core Animati ...

  2. 12.22笔记(关于CALayer//Attributes//CALayer绘制图层//CALayer代理绘图//CALayer动画属性//CALayer自定义子图层//绘图pdf文件//绘图渐变效果)

    12.22笔记 pdf下载文件:https://www.evernote.com/shard/s227/sh/f81ba498-41aa-443b-81c1-9b569fcc34c5/f033b89a ...

  3. <极客学院>视频教程学习笔记-iOS中CALayer的使用

    <1>CALayer简介 1.CALayer一般作为UIView的容器而使用. 2.CALayer是一个管理者图片载体(image-based content)的层结构 3.直接修改单独创 ...

  4. IOS Core Animation Advanced Techniques的学习笔记(一)

    转载. Book Description Publication Date: August 12, 2013 Core Animation is the technology underlying A ...

  5. CoreAnimation笔记

    核心动画继承结构 CoreAnimation Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Ani ...

  6. UIView CALayer 的区别

    UIView与CALayer的区别,很详细 研究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不 ...

  7. UIView与CALayer的区别,很详细

    研 究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不多,看得人云山雾罩,感觉,写那篇东西的人, ...

  8. object - c 语言基础 进阶笔记 随笔笔记

    重点知识Engadget(瘾科技)StackOverFlow(栈溢出)Code4Apprespon魏先宇的程序人生第一周快捷键: Alt+上方向键 跳到最上面  Alt+下方向键 跳到最下面      ...

  9. iPhone与iPad开发实战读书笔记

    iPhone开发一些读书笔记 手机应用分类1.教育工具2.生活工具3.社交应用4.定位工具5.游戏6.报纸和杂志的阅读器7.移动办公应用8.财经工具9.手机购物应用10.风景区相关应用11.旅游相关的 ...

随机推荐

  1. 两个list 合并成新一个list

  2. VS后台程序无法调用App_Code里的公共类解决方案

    在Web应用程序中不能通过右键项目-〉”添加“-〉”添加ASP.NET文件夹“方式添加 .因为Web应用程序中App_Code就不存在 .不过可以通过手动的方式创建,添加一个文件夹命名为App_Cod ...

  3. 浅谈HTTPS以及Fiddler抓取HTTPS协议

    最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...

  4. javabean连数据库

    1.在src下建包,然后包中建javabean类,代码如下(我的包名为aa) package aa; import java.sql.*; public class bean { private fi ...

  5. nullable,nonnull, null_resettable以及_Null_unspecified的区别和使用

    1.关键字:可以用于属性 方法和返回值参数中 关键字作用:提示作用  告诉开发者属性信息 关键字的目的:迎合swift 强语言,swift必须要指定一个对象是否为空 关键字好处:提高代码规划,减少沟通 ...

  6. VC界面最前端显示

    //显示在最前端 m_pMainWnd->SetWindowPos(&CWnd::wndTopMost, 0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); if (m_pM ...

  7. VA01复制单据,更新定价日期和价格

    用户经常复制单据,而复制单据的时候会带过来很多日期的历史数据.定价日期就是其中之一,而价格经常变动,或者删除的话,会出现价格错误等等情况. 1.更新定价日期,保证不会使用历史价格. 2.更新价格,保证 ...

  8. 删除Xcode中的 证书文件

    Finder->前往 ~/Library/MobileDevice/Provisioning Profiles

  9. 关于rem的学习

    网页常见单位px.em.rem:其中rem是css3新出的单位,官网是这样定义的:“font size of the root element”,意思是:相对长度单位,相对于根元素(即html元素)f ...

  10. mysql 查询当天、本周,本月,上一个月的数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 近7天 DAY) <= date(时间字段名) 近30天 DAY) & ...