Quartz2D须知:
(1)Quartz 2D是苹果官方的二维绘图引擎,同时支持iOS和Mac OS X系统(跨平台,纯 C 语言的) |
(2)Quartz2D的API是纯C语言的 |
(3)Quartz2D的API来自于Core Graphics框架 |
(4)数据类型和函数基本都以CG作为前缀
|
Quartz2D api常用拼接路径函数:
//新建一个起点 void CGContextMoveToPoint(CGContextRef c, CGFloat x, CGFloat y); |
//添加新的线段到某个点 void CGContextAddLineToPoint(CGContextRef c, CGFloat x, CGFloat y); |
//添加一个矩形 void CGContextAddRect(CGContextRef c, CGRect rect); |
//添加一个椭圆 void CGContextAddEllipseInRect(CGContextRef context, CGRect rect); |
//添加一个圆弧 void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise); |
Quartz 2D能完成的工作:
(1) 绘制图形 : 线条/三角形/矩形/圆/弧等 |
(2) 绘制文字:涂鸦/画板 |
(3) 绘制图片/生成图片(图像) |
(4) 读取PDF/生成PDF |
(5) 截图/裁剪图片 |
(6) 手势解锁 |
(7) 报表:折线图/饼状图/柱状图 (查看 gif 动画图片) |
(8) 自定义UI控件(或者叫: 自定义 view) 通过 Quartz2D绘制自己的控件 , 通过继承自 UIView,重写 drawRect:方法实现在控件上绘制各种内容 举例: 通过继承自 UIView 实现自定义的 UIImageView 实现自定义的“下载进度条”控件 幸运转盘控件 …… |
注意:
- Cocos2D(Cocos2D-x、Cocos2D-iPhone、Cocos2D-HTML5等), 是一个第三方开源的2D游戏框架
- 做2D 游戏的 还有 Sprite Kit。 一般3D 游戏用 unity3D。
Quartz2D在iOS开发中的价值:
为了便于搭建美观的UI界面,iOS提供了UIKit框架,里面有各种各样的UI控件 UILabel:显示文字 UIImageView:显示图片 UIButton:同时显示图片和文字(能点击) … … 利用UIKit框架提供的控件,拼拼凑凑,能搭建和现实一些简单、常见的UI界面 但是,有些UI界面极其复杂、而且比较个性化,用普通的UI控件无法实现,这时可以利用Quartz2D技术将控件内部的结构画出来,自定义控件的样子 其实,iOS中大部分控件的内容都是通过Quartz2D画出来的 因此,Quartz2D在iOS开发中很重要的一个价值是:自定义view(自定义UI控件) |
如有疑问,请发送邮件至 [email protected] 联系我。
By:蓝田(Loto)