码迷,mamicode.com
首页 > 其他好文 > 详细

CALayer一些知识~...3

时间:2014-07-14 14:10:45      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:使用   art   问题   div   re   c   

CALayer回吐的先后顺序是怎样的呢?CALayer绘图时是先绘制父Layer的内容,然后绘制子Layer的内容,这样便可以让子Layer显示在父Layer上面

•要在CALayer上绘图,有两种方法:
1.创建一个CALayer的子类,然后覆盖drawInContext:方法,可以使用Quartz2D API在其中进行绘图
2.设置CALayer的delegate,然后让delegate实现drawLayer:inContext:方法进行绘图
•注意:
–不能再将UIView设置为这个CALayer的delegate,因为UIView对象已经是内部层的delegate,再次设置会出问题
–无论使用哪种方法,都必须向层发送setNeedsDisplay消息,以触发相应绘图方法的调用
 
 
•当UIView收到setNeedsDisplay消息时,CALayer会准备好一个CGContextRef,然后向它的delegate即UIView,发送消息,并且传入已经准备好的CGContextRef对象。UIView在drawLayer:inContext:方法中会调用自己的drawRect:方法
•平时在drawRect:中通过UIGraphicsGetCurrentContext()获取的就是由CALayer传入的CGContextRef对象,在drawRect:中完成的所有绘图都会填入CALayer的CGContextRef中,然后被拷贝至屏幕
CALayer的CGContextRef用的是位图上下文(Bitmap Graphics Context)
 
 
当在UIView类中写了drawLayer:inContext:方法以后,需要调用该方法的super方法,来绘制内容,否则则不会绘制当前视图的Layer内容(不调用视图的DrawRect:方法)
如果在一个仕途上添加一个Layer,调用顺序是
调用视图的init方法初始化视图和layer--->调用layer代理即视图的方法drawLayer:inContext:,然后调用drawRect:方法,,最后调用子Layer的

drawInContext:方法

CALayer一些知识~...3,布布扣,bubuko.com

CALayer一些知识~...3

标签:使用   art   问题   div   re   c   

原文地址:http://www.cnblogs.com/xyzaijing/p/3841831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!