首先,什么是Core Graphics和Quartz 2D?

Core Graphics:是基于Quartz 2D绘图引擎的一个C语言的API绘图框架。它也是iOS开发中最基本的框架(Framework)之一。两点原因,第一是该框架是每一个iOS应用最初被建立时,就被系统默认添加的三个框架(Foundation、UIKit、Core Graphics)之一;另一点是,我们平时常见的各种UIKit框架提供的UI控件,实际上都是由Core Graphics进行绘制的。

Quartz 2D:是一个绘图引擎,它被Core Graphics所封装所包含,它是Core Graphics的一部分。因此我们一般都是用CGxxxx命名的函数进行绘图。

 

其次,在哪里绘图?

在图形上下文对象中绘图,在Quartz 2D中的绘图上下文可以是位图Bitmap、PDF、窗口Window、层Layer、打印对象Printer。最常见的,我们在UIView和UIView子类上绘图,其实是在系统为我们已经准备好的一个图形上下文CGContextRef对象上绘图。这个CGContextRef对象只能在drawRect函数中获取,而且一定是自动调用的drawRect函数。(假如你自己手动调用该函数,将无法获取图形上下文CGContextRef对象,从而也就无法成功绘图。当然,这样做并不会造成app崩溃crash,或者其他致命错误,但是因为无法绘图,因此这样做是毫无意义的)。

点、线、面的构建

绘图的步骤:(在drawRect函数中)

1.获取绘图上下文

2.创建并设置路径

3.将路径添加到上下文

4.设置上下文状态

5.绘制路径

6.释放路径

(这里借鉴了 http://www.cnblogs.com/kenshincui/p/3959951.html 的表述)

Core Graphics框架 利用Quartz 2D绘图的更多相关文章

  1. Core Graphics框架是Quartz的核心,也是内容描画的基本接口。

    Core Graphics框架是Quartz的核心,也是内容描画的基本接口.

  2. iOS绘图UIBezierPath 和 Core Graphics框架

    前言 iOS系统本身提供了两套绘图的框架,即UIBezierPath 和 Core Graphics.而前者所属UIKit,其实是对Core Graphics框架关于path的进一步封装,所以使用起来 ...

  3. iOS基础 - Quartz 2D绘图

    一.Quartz 2D Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境. Quartz 2D以PDF的规范为基础的图形库,用来绘制二维文字和图形,允许相同的绘图指令在任 ...

  4. Core Graphics框架

    在iOS中常用的框架是Quartz 2D,它是Core Graphics框架的一部分,是一个强大的二维图像绘制引擎.我们日常开发所用到的UIKit的组件都是由Core Graphics框架进行绘制的. ...

  5. Quartz 2d绘图

    今天看了一下Quartz 2D绘图,我只想说:不要把绘图和动画那些东西当做一个很复杂的东西,其实只要你认真看还是可以理解的.他们并不难.啰嗦了几句,现在直接进入正题: 前提是我们必须新建一个singl ...

  6. 关于Quartz 2D绘图的简单使用

    Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境,Quartz 2D的API可以实现许多功能,如:基于路径的绘图.透明度.阴影.颜色管理.反锯齿.PDF文档生成和PDF元 ...

  7. iOS基础 - Quartz 2D绘图的基本步骤

    一.使用Quartz 2D绘图的基本步骤 1) 获取上下文context(绘制图形的地方) 2) 设置路径(路径是用来描述形状的) 3)  将路径添加到上下文 4)  设置上下文属性(设置颜色,线宽, ...

  8. 在drawRect:方法中绘制图片,文字以及Core Graphics 框架的了解

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...

  9. 1.1 Quartz 2D 绘图

    本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末 如果觉得本文内容过长,请前往本人 “简书”   Quartz2D 绘图主要步骤:   1. 获取[图形上下文]对象 —— (拿到草稿纸 ...

随机推荐

  1. table中的td内容过长显示为固定长度,多余部分用省略号代替

    如何使td标签中过长的内容只显示为这个td的width的长度,之后的便以省略号代替. 给table中必须设置属性: table-layout: fixed; 然后给 td 设置: white-spac ...

  2. 团体程序设计天梯赛-练习集-L1-026. I Love GPLT

    L1-026. I Love GPLT 这道超级简单的题目没有任何输入. 你只需要把这句很重要的话 —— “I Love GPLT”——竖着输出就可以了. 所谓“竖着输出”,是指每个字符占一行(包括空 ...

  3. React重点概要

    JSX语法: 1.ReactDOM.render:用于将模板转换为HTML语言,并插入指定的DOM节点: 语法规则:遇到 HTML 标签(以 < 开头),就用 HTML 规则解析,HTML 语言 ...

  4. Alios-Things的学习与使用(1)

    目录 Alios-Things的学习与使用 1.简介 1.1 为什么要学alios-Things 2. 环境搭建 2.1 使用docker toolbox安装docker 2.2 测试使用dockde ...

  5. [NOIP 2010] 关押罪犯 (二分+二分图判定 || 并查集)

    题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值"( ...

  6. Hive sql

    1.DDL操作 1.1 建表 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_ ...

  7. Problem 1

    Problem 1 # Problem_1.py """ If we list all the natural numbers below 10 that are mul ...

  8. 【codeforces 731E】Funny Game

    [题目链接]:http://codeforces.com/contest/731/problem/E [题意] 两个人轮流玩游戏; 取序列中的前k(k>1)个数字,拿出来; 把这k个数字全部加起 ...

  9. MySQL Query Cache 相关的问题

    最近经常有人问我 MySQL Query Cache 相关的问题,就整理一点 MySQL Query Cache 的内容,以供参考. 顾名思义,MySQL Query Cache 就是用来缓存和 Qu ...

  10. PPAPI插件与浏览器的通信

    PPAPI的插件,原本是能够使用JS与浏览器交互的,https://code.google.com/p/ppapi/wiki/InterfacingWithJavaScript.这里还提供了一个JS与 ...