Quartz2D - 01.概述
2015-07-27 22:25
260 查看
1.概述
Quartz2D是一个二维绘图引擎,同时支持IOS和Mac系统Quartz2D功能概述:
绘制图形:线条、三角形、矩形、圆、弧等
绘制文字
绘制/生成图片(图像)
读取/生成PDF
截图/裁剪图片
自定义UI控件
Quartz2D的API是纯C语言的,来自Core Graphics框架
数据类型和函数基本都是以CG作为前缀的
2.为什么要使用Quartz2D
IOS提供了UIKit框架,里面有各种各样的UI控件,便于开发者方便的搭建美观的UI界面利用UIKit提供的控件,能够搭建和实现一些简单的、常见的UI界面
但是,有些时候我们需要搭建的UI界面极其复杂、而且需要一些个性化的功能,而系统提供的UI控件无法满足我们的需求,这时可以利用Quartz2D技术将内部的结构画出来,自定义我们需要的控件
3.图形上下文(Graphics Context)
要想利用Quartz2D绘图,必须知道对象的图形上下文图形上下文是CGContextRef类型的数据,作用:
保存绘图信息、绘图状态等
决定绘制的输出目标(绘制到什么地方上去)
相同的一套绘图序列,指定不同的图形上下文,就可以将相同的图像绘制到不同的目标上
图形上下文类型
Bitmap图形上下文
PDF图形上下文
Window图形上下文
Layer图形上下文
Printer图形上下文
4.利用Quartz2D自定义View(自定义UI控件)
新建一个类,继承自UIView实现-(void)drawRect:(CGRect)rect方法,然后在在此方法中
取得跟当前View相关联的上下文
绘制相应的图形内容
利用图形上下文将绘制的内容渲染显示到View上面
相关文章推荐
- Quartz2D-02.利用Quartz画基本形状
- Foundation框架 - 集合
- Android原生下拉刷新SwipeRefreshLayout实践
- Java中isAssignableFrom()方法与instanceof()方法用法
- 腾讯笔试_天猫魔盒(转载)
- leetcode 241 Different Ways to Add Parentheses
- 小白学开发(iOS)OC_类的本质(2015-07-27)
- Java拆解字符串(包括中文)
- 参数服务器在分布式深度学习的应用
- python获取内存和cpu利用率记录日志文件
- js 操作 table
- 类设计回顾
- 快速排序
- Lintcode 比较字符串
- Scala学习第一天 scala开发环境搭建和helloword解析
- 面试:实现内存复制函数
- 选择排序
- JAVA中静态代码块,构造代码块,构造函数的加载顺序
- nginx源码分析1———进程间的通信机制三(mmap)
- 我爱自然语言处理网文章汇总