12.22笔记
笔记的文本摘要如下所示:
注意:以下仅仅是文本摘要,没有贴图,出现右边的图标()表示笔记中此处有图片,完整笔记请前往pdf链接中观看或下载观看.
1.渐变效果例子
首先:自定义一个渐变视图,在自定义视图中重写drawRect
获取上下文
实例化色彩空间
描述渐变
渲染上下文(绘制渐变)
释放对象
2.PDF例子
1.创建PDF文件
2.画内容
3.关闭上下文
技术博客http://www.cnblogs.com/ChenYilong/新浪微博http://weibo.com/luohanchenyilong
3.CALayer基本属性列子
4.自定义图层例子
5.Calayer的隐藏属性
绘制图层(重点看)
1.在自定义图层中需要实现下面这个方法,绘制图层
- (void)drawInContext:(CGContextRef)ctx;
注意:在上下文中绘制的图像都是反的,我们需要自己转换y轴坐标系,并且移动到最初的位置。
最终变成这样,坐标系就转换成功了,图片也正了,只需要将坐标系整体往下移动就好了。
在自定义视图中,同时实现了这两个方法的调用原理
(void)drawRect:(CGRect)rect
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
1.自定义图层需要自己设置代理
2.系统自带的控件,控件图层的代理就是控件本身。会自动调用图层的代理方法。
3.如果重写了图层的代理方法,就会取消掉系统默认调用的方法。比如在自定义控件中,重写了
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;
在这个方法中如果不调用[super drawLayer:layer inContext:ctx] 会导致系统不会调用- (void)drawRect:(CGRect)rect方法
4.系统绘制图层方法,默认执行的顺序是:先执行- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;
在执行- (void)drawRect:(CGRect)rect
5. NSObject的分类,分类是对方法进行扩展的
6.分类还有一个名称:非正式代理,所谓非正式代理,不需要代理遵守协议,可以直接使用,直接使用时,也可以重写!