您的位置:首页 > 产品设计 > UI/UE

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 core graphics