UI高级----------- Quartz 2D 绘图
2016-08-11 17:36
337 查看
一. Quartz 2D 介绍
Quartz 2D相关概念Quartz 2D 是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境
Quartz 2D API可以实现许多功能,如基于路径的绘图、透明度、阴影、颜色管理、
反锯齿、PDF文档生成和PDF元数据访问等
Quartz 2D API是Core Graphics框架的一部分,因此其中的很多数据类型和方法 都是以CG开头的。会经常见到Quartz 2D(Quartz)和Core Graphics两个术语交 互使用
Quartz 2D与分辨率和设备无关,因此在使用Quartz 2D绘图时,无需考虑最终绘 图的目标设备
Core Graphics
Core Graphic框架是一组基于C的API,可以用于一切绘图操作,这个框架的重 要性,仅次于UIKit和Foundation
当使用UIKit创建按钮、标签或者其他UIView的子类时,UIKit会用Core Graphics将 这些元素绘制在屏幕上。此外,UIEvent(UIKit中的事件处理类)也会使用Core Graphics,用来帮助确定触摸事件在屏幕上所处的位置
因为UIKit依赖于Core Graphics,所以当引入”UIKit/uikit.h”时,core graphics框架会被自动引入,即UIKit内部已经引入了Core Graphics框架的主头文 件:”CoreGraphics/CoreGraphics.h” (这里由于博客bug原因<框架名>打不了,所以用”“代替了)
为了让开发者不必触及底层的Core Graphics的C接口,UIKit内部封装了Core Graphics的一些API,可以快速生成通用的界面元素。但是,有时候直接利用Core Graphics的C接口是很有必要和很有好处的,比如创建一个自定义的界面元素
二 图形上下文(Graphics Context)
概念Graphics Context是一个数据类型(CGContextRef),封装了Quartz绘制图像 到输出设备的信息。输出设备可以是PDF文件、Bitmap或者显示器的窗口上
Quartz中所有的对象都是绘制到一个Graphics Context中
一个Graphics Context表示一个绘制目标。它包含绘制系统用于完成绘制指令的绘 制参数和设备相关信息
Graphics Context定义了基本的绘制属性,如颜色、裁减区域、线条宽度和样式信 息、字体信息、混合模式等
在iOS应用程序中,如果要在屏幕上进行绘制,需要定义一个UIView类,并实现它的 drawRect:方法。视图的drawRect:方法在视图显示在屏幕上及它的内容需要更新时被 调用
在调用自定义的drawRect:后,视图对象自动配置绘图环境以便能立即执行绘图操作
作为配置的一部分,视图对象将为当前的绘图环境创建一个Graphics Context。通 过调用UIGraphicsGetCurrentContext()方法可以获取当前的Graphics Context
Quartz提供了以下几种类型的 Graphics Context:
Bitmap Graphics Context
PDF Graphics Context
Layer Graphics Context
Printer Graphics Context
三 Quartz 2D坐标系
相关文章推荐
- iOS开发-UI高级 Quartz 2D绘图
- iOS之UI高级---Quartz2D基本使用(1)
- iOS高级-QuartzCore框架-2D绘图
- iOS开发UI-利用Quartz2D 实现基本绘图(画三角形、矩形、圆、圆弧)
- iOS高级-QuartzCore框架-2D绘图-实例:小黄人
- iOS开发UI-利用Quartz2D 实现基本绘图(画三角形、矩形、圆、圆弧)
- iOS开发之Quartz 2D绘图高阶用法(二)
- IOS中的绘图Quartz2D
- (素材源码)猫猫学IOS(三十五)UI之Quartz2D仿真支付宝手势解锁_代理获得密码。
- IOS学习笔记 运用Quartz 2D框架绘图理论基础(1)
- UI进阶第十发:Quartz 2D手势识别
- iOS开发UI篇—Quartz2D使用(绘图路径)
- Quartz2D基本使用(二)——绘图状态
- Quartz2D绘图(2)画线条
- 学习笔记 - Quartz 2D绘图的基本步骤
- 猫猫学IOS(三十三)UI之Quartz2D雪花飘落效果刷帧
- Quartz 2D绘图
- iOS开发中的绘图-Quartz2D-
- Quartz 2D绘图基础:CGContextRef
- 猫猫学IOS(二十九)UI之Quartz2D自定义下载控件_画各种图形