12.22笔记(关于CALayer//Attributes//CALayer绘制图层//CALayer代理绘图//CALayer动画属性//CALayer自定义子图层//绘图pdf文件//绘图渐变效果)
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.分类还有一个名称:非正式代理,所谓非正式代理,不需要代理遵守协议,可以直接使用,直接使用时,也可以重写!

本文永久链接:http://www.cnblogs.com/ChenYilong/p/3490370.html
12.22笔记(关于CALayer//Attributes//CALayer绘制图层//CALayer代理绘图//CALayer动画属性//CALayer自定义子图层//绘图pdf文件//绘图渐变效果)的更多相关文章
- 【笔记】拉勾Java工程师高薪训练营-第一阶段 开源框架源码解析-模块一 持久层框架涉及实现及MyBatis源码分析-任务一:自定义持久层框架
以下笔记是我看完视频之后总结整理的,部分较为基础的知识点也做了补充,如有问题欢迎沟通. 目录 任务一:自定义持久层框架 1.1 JDBC回顾及问题分析 1.2 自定义持久层框架思路分析 1.3 IPe ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二)
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第七章:在Direct3D中绘制(二) 代码工程地址: https:/ ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第六章:在Direct3D中绘制
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第六章:在Direct3D中绘制 代码工程地址: https://gi ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十六章:实例化和截头锥体裁切
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十六章:实例化和截头锥体裁切 代码工程地址: https://git ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十五章:第一人称摄像机和动态索引 代码工程地址: https://g ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十三章:计算着色器(The Compute Shader)
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十三章:计算着色器(The Compute Shader) 代码工程 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十章:混合
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十章:混合 代码工程地址: https://github.com/j ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图 代码工程地址: https://github.com/j ...
- iOS动画学习-CALayer
iOS中有很多方法可以实现动画,我们可以用CAKeyframeAnimation, CABasicAnimation,CASpringAnimation(iOS9.0中添加的,实现弹簧的效果),也可以 ...
随机推荐
- 一步一步构建手机WebApp开发——页面布局篇
继上一篇:一步一步构建手机WebApp开发——环境搭建篇过后,我相信很多朋友都想看看实战案例,这一次的教程是页面布局篇,先上图: 如上图所示,此篇教程便是教初学者如何快速布局这样的页面.废话少说,直接 ...
- ActiveRecord-连接多张表之单表继承
ActiveRecord-连接多张表之单表继承 1. 基本概念 Rails提供了两种机制,可以将复杂的面向对象模型映射为关系模型,即所谓的单表继承(single-table inheritance)和 ...
- golang交叉编译笔记
GOOS:目标平台的操作系统(darwin.freebsd.linux.windows) GOARCH:目标平台的体系架构(386.amd64.arm) Mac 下编译 Linux 和 Windows ...
- word2vec是如何工作的?
如何有效的将文本向量化是自然语言处理(Natural Language Processing: NLP)领域非常重要的一个研究方向.传统的文本向量化可以用独热编码(one-hot encoding). ...
- URAL 1736 Chinese Hockey(网络最大流)
Description Sergey and Denis closely followed the Chinese Football Championship, which has just come ...
- 最短路径——Dijkstra算法
一.相关定义 最短路径:从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径. 地位:Dijkstra算法是很有代表性的最短路算法,在很多专业课程中都作为基本内容有详细的介绍,如数据 ...
- NO5——素数筛选
#include <stdio.h> int main() { ]={}; ;i<=;i++) a[i]=; ;i<=;i++) if(a[i]) ;j+=i) a[j]=; ...
- ubutu下source命令问题(复制)
最近一段时间在使用Bash on Ubuntu on Windows做shell脚本调试时发现在脚本中使用source时会报错,上网查了下才了解到原来是在Ubuntu中使用的并不是bash,而是使用 ...
- 【转】H5 - HTML5新增标签
下面分别是传统的div+css的页面布局方式 下面是HTML5布局方式: 是不是精简了很多呢 现在来说说图片中出现的标签: 结构标签:(块状元素) 有意义的div artical 标记定义一篇文章 ...
- 集大通APP案例分析
前言 很多同学有误解: 软件工程课是否就是理论课? 或者是几个牛人拼命写代码,其他人打酱油的课? 要不然就是学习一个程序语言,搞一个职业培训的课? 都不对!软件工程有理论,有实践,更重要的是分析,思辨 ...