UI高级----------- Quartz 2D 绘图

一. 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坐标系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值