Quartz2D分享
1.Quartz2D基本概念
Quartz2D 苹果封装的一套绘图的函数库,同时支持iOS和Mac。 UIKit框架,里面有各种各样的UI控件,其实大部分控件的内容都是通过Quartz2D画出来的。
2.Quartz2D能做什么?
绘制图形 : 线条\三角形\矩形\圆\弧等
绘制文字
绘制\生成图片(图像)
读取\生成PDF
截图\裁剪图片
自定义UI控件
涂鸦\画板
手势解锁
...........
iOS中常用的是截屏/裁剪/自定义UI控件



3.Quartz2D在iOS开发中的价值
为了方便搭建UI界面,iOS提供了UIKit框架,里面有各种各样的UI控件,比如:UILabel、UIImageView、UIButton等等,利用UIKit框架提供的控件,我们可以搭建和现实一些常见的UI界面。但是,有些界面比较复杂,比较个性化,用普通的UI控件可能无法实现,这时我们可以利用Quartz2D将内部结构画出来,自定义控件。其实,iOS大部分控件的内容都是通过Quartz2D画出来的。所以,Quartz2D在iOS开发中很重要的一个价值就是:自定义view,或者说自定义UI控件。
4.图形上下文
图形上下文(Graphics Context):是一个CGContextRef类型的数据
图形上下文的作用:1.保存绘图信息、绘图状态。2.决定绘制的输出目标(绘制到什么地方)

上下文类型: 在同一个绘图序列里指定不同的图形上下文, 可以将所绘图像绘制到不同的目标上

5.Quartz2D的使用
Quartz2D的API是纯C语言的,来自于Core Graphics框架数据类型和函数基本都以CG作为前缀
CGContextRef//图形上下文
CGPathRef//路径
CGContextStrokePath(ctx);//渲染
利用Quartz2D绘制东西到view上的步骤
1.新建一个类,继承自UIView
2.实现- (void)drawRect:(CGRect)rect方法,然后在这个方法中
3.取得跟当前view相关联的图形上下文
4.绘制相应的图形内容
5.利用图形上下文将绘制的所有内容渲染显示到view上面
总结 在drawRect 绘图的步骤
1.获取图形上下文
2.绘图操作
3.渲染
6.应用Demo
1.基本图形





2.饼状图



3.柱状图



4.进度图




5.下雨
