Quartz 2D简介
-
Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统
-
Quartz 2D能完成的工作
- 绘制图形 : 线条\三角形\矩形\圆\弧等
- 绘制文字
- 绘制\生成图片(图像)
- 读取\生成PDF
- 截图\裁剪图片
- 自定义UI控件
二、自定义view
-
为了便于搭建美观的UI界面,iOS提供了UIKit框架,里面有各种各样的UI控件
UILabel:显示文字
UIImageView:显示图片
UIButton:同时显示图片和文字(能点击)
… … -
利用UIKit框架提供的控件,拼拼凑凑,能搭建和现实一些简单、常见的UI界面
-
但是,有些UI界面极其复杂、而且比较个性化,用普通的UI控件无法实现,这时可以利用Quartz2D技术将控件内部的结构画出来,自定义控件的样子
-
其实,iOS中大部分控件的内容都是通过Quartz2D画出来的
-
因此,Quartz2D在iOS开发中很重要的一个价值是:
自定义view
(自定义UI控件) -
自定义view的步骤
- 新建一个类,继承自UIView
- 实现- (void)drawRect:(CGRect)rect方法,然后在这个方法中
- 取得跟当前view相关联的
图形上下文
- 绘制相应的图形内容
- 利用
图形上下文
将绘制的所有内容渲染显示到view上面
-
为什么要实现drawRect:方法才能绘图到view上?
- 因为在drawRect:方法中才能取得跟view相关联的图形上下文
-
drawRect:方法在什么时候被调用?
- 当view第一次显示到屏幕上时(被加到UIWindow上显示出来)
调用view的setNeedsDisplay
或者setNeedsDisplayInRect:时
- 当view第一次显示到屏幕上时(被加到UIWindow上显示出来)
网友评论