CALayer笔记
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笔记的更多相关文章
- 【好程序员笔记分享】——UIView与CALayer详解
-iOS培训,iOS学习-------型技术博客.期待与您交流!------------ UIView与CALayer详解 研究Core Animation已经有段时间了,关于Core Animati ...
- 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 ...
- <极客学院>视频教程学习笔记-iOS中CALayer的使用
<1>CALayer简介 1.CALayer一般作为UIView的容器而使用. 2.CALayer是一个管理者图片载体(image-based content)的层结构 3.直接修改单独创 ...
- IOS Core Animation Advanced Techniques的学习笔记(一)
转载. Book Description Publication Date: August 12, 2013 Core Animation is the technology underlying A ...
- CoreAnimation笔记
核心动画继承结构 CoreAnimation Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Ani ...
- UIView CALayer 的区别
UIView与CALayer的区别,很详细 研究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不 ...
- UIView与CALayer的区别,很详细
研 究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不多,看得人云山雾罩,感觉,写那篇东西的人, ...
- object - c 语言基础 进阶笔记 随笔笔记
重点知识Engadget(瘾科技)StackOverFlow(栈溢出)Code4Apprespon魏先宇的程序人生第一周快捷键: Alt+上方向键 跳到最上面 Alt+下方向键 跳到最下面 ...
- iPhone与iPad开发实战读书笔记
iPhone开发一些读书笔记 手机应用分类1.教育工具2.生活工具3.社交应用4.定位工具5.游戏6.报纸和杂志的阅读器7.移动办公应用8.财经工具9.手机购物应用10.风景区相关应用11.旅游相关的 ...
随机推荐
- python实现查看目录下重复的文件
该python 脚本有以下三个功能: 1. 实现查看目录下重复的文件,输出文件按修改时间升序排列 2. 将按修改时间排列比较旧的.可删除的文件列出来 3. 按目录对重复文件进行统计,比如,目录/tmp ...
- python爬虫实战(一)——实时获取代理ip
在爬虫学习的过程中,维护一个自己的代理池是非常重要的. 详情看代码: 1.运行环境 python3.x,需求库:bs4,requests 2.实时抓取西刺-国内高匿代理中前3页的代理ip(可根据需求自 ...
- loadrunner json
Action(){ web_custom_request("JRPT_WriteLog", //VuGen中树形视图中显示的名称 "Url=url", //请求 ...
- HBase 安装
HBase 集群安装 1.上传tar包,解压tar包 tar -zxvf hbase-1.1.5-bin.tar.gz 2.修改配置文件 进入 hbase/conf/ 在文件 regionserve ...
- 结合个人经历总结的前端入门方法 (转自https://github.com/qiu-deqing/FE-learning)
结合个人经历总结的前端入门方法 (https://github.com/qiu-deqing/FE-learning),里面有很详细的介绍. 之前一直想学习前端的,都不知道怎么下手都一年了啥也没学到, ...
- Python中 "+=" 使用时的注意事项
代码1: >>> l1=range(3) >>> l2=l1 >>> l2+=[4] >>> l1 [0, 1, 2, 4] & ...
- Nodejs express中创建ejs项目,解决express下默认创建jade,无法创建ejs问题
最近在看<Node.js开发指南>,看到使用nodejs进行web开发的时候,准备创建ejs项目遇到问题了, 书上命令为: express -t ejs microblog 可是执行后,仍 ...
- EasyUI combobox 下拉高度自适应
要指出的是,combobox是继承自combo的,所以,combo的属性也可以被combobox使用,该问题也是这样产生的,知道这个原理,该问题就解决一半了,另一点要指出的是,在easyui中,num ...
- Windows Store App JavaScript 开发:选取文件和文件夹
前面提到过,文件打开选取器由FileOpenPicker类表示,用于选取或打开文件,而文件夹选取器由FolderPicker类表示,用来选取文件夹.在FileOpenPicker类中,pickSing ...
- 图片上传预览 (URL.createObjectURL)
知识预备:1. URL.createObjectURL() 静态方法会创建一个 DOMString,它的 URL 表示参数中的对象.这个 URL 的生命周期和创建它的窗口中的 document 绑定. ...