1、初识:CALayer的UIView内部的一个层,在IOS中所有能显示内容在屏幕上是的控件,其本质都是因为这个内部的layer层。当一个UIView要显示内容的时候,会调用
-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx 方法
将所有要显示的内容(在图形上下文ctx中,是一个CGContextRef类型的对象)绘制在layer上,绘制完成系统会拷贝layer上的内容到View上完成显示过程。自定义layer的意义就在于能够控制View显示的内容,达到标准控件无法显示的功能
2、如何自定义
* 可以像自定义UIView一样采用继承的方法。主要思路是自定义一个继承至CALayer的类,类内部实现drawLayer:inContext:方法,进行图形的绘制和渲染。使用自定义的类显示到屏幕上……
* 还有一种自定义的方式,就是通过设置CALayer的代理完成。主要思路是实例化一个CALayer对象,设置CALayer对象的代理为控制器,在控制器中实现drawLayer:inContext:方法
原文地址:http://www.cnblogs.com/luseike/p/3905699.html