CALayer(二)
来源:互联网 发布:如何开通淘宝达摩盘 编辑:程序博客网 时间:2024/06/05 06:26
前言:本文涵盖了(1)绘制CALayer的三种方式(2)Layer Tree
一 提供CALayer内容的三种方式
- 把一个图像对象直接赋值给contents属性(这是提供CALayer内容的最好方式)
- 设置delegate,让代理绘制layer的内容
- 继承CALayer,重写绘制方法,来提供layer的内容
1.1 把一个图像对象直接赋值给contents属性
这个在上一篇文章里讲的很详细,具体见上一篇文章
1.2 设置delegate
当layer中的内容是需要动态改变的时候,可以使用delegate来实现
两个代理方法:
- displayLayer:如果代理实现了这个方法,那么要绘制一个bitmap,然后赋值给contents属性
- drawLayer:inContext:如果代理实现了这个方法,Core Animation提供一个context来生成bitmap,你所做的只是把想要的内容绘制到context
注意:代理必须至少实现两个代理方法其中的一个,如果都实现,则调用displayLayer:
举例:
使用displayLayer来实现
这段代码的的功能是每隔一秒钟,随机更换layer的图片。效果如下
使用draw:inContext实现自定义重新绘制
效果如下
二 Layer Tree
Layer Tree分为三种,Model Layer Tree,Presentation Tree,Render Tree
其中,Render Tree为CoreAnimation私有的,是CoreAnimation具体实现使用的私有Tree,这里不做讨论。
Model Layer Tree:存储的是模态对象,也是我们通常处理的对象,比如layer.position = CGPointMake(10.0,10.0)修改的就是Model Layer Tree
Presentation Tree:存储的是正在执行的动画的当前状态,是个动态的树,由这个树来获取当前动画运行到哪里。
这两点对后续Core Animation的深入理解很重要。
上述三种Tree的对应关系如下图
0 0
- CALayer(二)
- CALayer简介 (二)UIView和UIImageView的CALayer属性
- IOS SDK详解之CALayer(二)
- IOS SDK详解之CALayer(二)
- core animation初识之CALayer(二)
- CALayer(二)创建新图层
- CALayer动画实践(二):CAReplicatorLayer的用法
- iOS之CALayer与核心动画(二)
- 动画—CALayer的初步学习二:CALayer绘图—通过代理方法绘图(学会从博客上自学)
- CALayer简介 (五)创建自定义CALayer
- CALayer 详解(转载)
- 图层(CALayer)
- CALayer使用(1)
- CALayer( 一 )
- CALayer
- CALayer
- CALayer
- CALayer
- loadrunner添加服务器监控
- Java 查找指定文件夹下的所有文件中包含有中文的文件,并抠出中文
- tip8——intent的7个属性
- 将字符串按照传入的参数进行逆序
- Linux常用命令行3
- CALayer(二)
- EasyRMS 详细介绍
- Ducci Sequence UVA
- input标签上传图片到后端前用H5的FileReader 方法实现图片的显示
- ValuceCK
- TLE二行轨道根数格式
- TextView中UrlSpan与文本中的超链接冲突问题
- Linux学习篇之~unit9
- 如何使线管交叉显示打断