1. 获取Graphics Context

CGContextRef  ctx = UIGraphicsGetCurrentContext();

  

2. 最后的渲染接口

CGContextStrokePath(ctx);//渲染空心图形,但线条没有空心直说,只有宽度
CGContextFillPath(ctx);//渲染实心图形,如圆、矩形等。

3. 基本接口

3.1. 基本图形接口

3.1.1.  颜色设置
//第一种颜色设置
CGContextSetRGBStrokeColor(ctx, 1.0, 0.7, 0.3, 1.0); //第二种颜色设置
CGContextSetRGBFillColor(ctx, 1.0, 0.7, 0.3, 1.0); //第三种设置颜色的方式:同时设置空心颜色和实心颜色
[[UIColor grayColor] set] //第四种颜色设置 实心颜色
[[UIColor grayColor] setFill] //第五种颜色设置 空心颜色
[[UIColor grayColor] setStroke] //第六种颜色设置
[[UIColor colorWithRed:1.0 green: blue: alpha:1.0] set];
3.1.2.  直线
// 设置起点
CGContextMoveToPoint(ctx, , );
// 设置终点
CGContextAddLineToPoint(ctx, , ); //关闭起点和终点
CGContextClosePath(ctx);

  直线属性:

//设置线条的宽度
CGContextSetLineWidth(ctx, ); //设置线条起点和终点的样式为圆角
CGContextSetLineCap(ctx, kCGLineCapRound); //设置线条的转角的样式为圆角
CGContextSetLineJoin(ctx, kCGLineJoinRound);
3.1.3.  矩形
CGContextAddRect(ctx, CGRectMake(, , , ));
3.1.4.  圆
//圆
CGContextAddArc(ctx, , , , , * M_PI, ); //椭圆
CGContextAddEllipseInRect(ctx, CGRectMake(, , , ));
3.1.5.  圆弧

  第一种方式,跟画圆一样,只是弧度大小小于 2*M_PI, 一个M_PI是180度。

CGContextAddArc(CGContextRef  _Nullable c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)

//参数分别为:Graphics Context, 圆心X轴,圆心Y轴,半径,起始弧度,结束弧度,顺/逆时针

  空心绘制时需要封口。

3.1.6.  饼状图

  饼状图由两条线,和一个没有封口的圆弧组成。或者实现起来由一条线,一个圆弧,然后封口组成。注意的是,圆弧的圆心和线的起点是同一个点。

// 画线
CGContextMoveToPoint(ctx, , );
CGContextAddLineToPoint(ctx, , ); // 画圆弧
CGContextAddArc(ctx, , , , M_PI_2, M_PI, ); // 关闭路径
CGContextClosePath(ctx);

  M_PI对应的弧度是180度,这样,就可以根据比例来算初始位置和大小了。

Quartz2D 之 简单使用的更多相关文章

  1. QuartZ2D __ 简单用法 1

    一. 简单做一个画板 1. 建立一个UIView类 2. 在.m里建立一个延展 3. 分别定义一个起点, 一个终点的结构体属性 . 在建立一个存储路径的数组 @interface DrawView ( ...

  2. iOS-绘图(Quartz2D)的简单使用(原创)

    前言 附上绘图demo--https://github.com/yangfangxue/YFX_Quartz-2D 什么是Quartz2D? Quartz 2D是一个二维图形绘制引擎,支持ios环境和 ...

  3. Quartz2D 之 简单介绍

    1. 概述 Quartz2D 是一个二维绘图引擎. 主要功能: 绘制图形:线.矩形.圆.弧 绘制文字 绘制图片 绘制PDF 裁截图片 自定义UI控件 2. 图形上下文 Graphics Context ...

  4. 【iOS开发-80】Quartz2D画图简单介绍:直线/圆形/椭圆/方形以及上下文栈管理CGContextSaveGState/CGContextRestoreGState

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2Vpc3ViYW8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  5. iOS Quartz2D画图

    对于刚接触Quartz2D的同学来说,先了解 上下文 的概念,再从最基础的画线来具体体验Quartz2D的画图步骤 介绍Quart2D :是苹果官方的二维(平面)绘图引擎,同时支持iOS和macOS系 ...

  6. iOS 之 Quartz2D

    1. Quartz2D 之 简单介绍 2. Quartz2D 之 简单使用 3. Quartz2D 之 绘制文本

  7. Quartz2D之绘制一个简单的机器猫

    学习iOS有一段时间了,在博客园也默默的潜水了两个月,见识了很多大神,收获不少. 今天整理笔记,发现忘记的不少,我感觉需要及时的整理一下了,同时也把做的小东西贴上来和大家分享一下. 最近学习了Quar ...

  8. iOS开发UI篇—Quartz2D简单介绍

    iOS开发UI篇—Quartz2D简单介绍 一.什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\ ...

  9. iOS开发UI篇—Quartz2D简单使用(一)

    iOS开发UI篇—Quartz2D简单使用(一) 一.画直线 代码: // // YYlineview.m // 03-画直线 // // Created by apple on 14-6-9. // ...

随机推荐

  1. Android网络开发之OkHttp--基本用法POST

    1.OkHttp框架使用了OkIo框架,不要忘记下OkIo.jar 2.通过POST访问网络,和通过GET访问网络基本相同,多了设置请求参数的过程.主要分为五步: (1).声明并实例化一个OkHttp ...

  2. Tiles布局

    1. header, sidebar,welcome,footer 4个jsp文件 WEB-INF目录下创建模板文件: commons文件夹下 footer.jsp header.jsp layout ...

  3. winutils spark windows installation

    http://stackoverflow.com/questions/37305001/winutils-spark-windows-installation

  4. AsParallel 用法

    http://www.cnblogs.com/leslies2/archive/2012/02/08/2320914.html AsParallel 通常想要实现并行查询,只需向数据源添加 AsPar ...

  5. createNewFile()与createTempFile()的不同

    1, File 的 createNewFile() 方法:          createNewFile():返回值为 boolean:   方法介绍:当且仅当不存在具有此抽象路径名指定名称的文件时, ...

  6. Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)

         在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException ...

  7. (四)Jquery Mobile表单

    Jquery Mobile表单与列表 一.JM表单      1.表单      普通html表单            效果:          2.只能输入数字的表单           效果:  ...

  8. PHP学习笔记-1——快捷键

    整行删除 ctrl+E set get 生成 alt+ insert 查找.搜索和替换 Ctrl-F3 搜索位于插入点的词 F3/Shift-F3 在文件中查找下一个/上一个 Ctrl-F/H 在文件 ...

  9. Charles从入门到精通

    Charles 从入门到精通 发表于 2015-11-14 12:00 文章目录 1. 目录 2. 简介 3. 安装 Charles 4. 将 Charles 设置成系统代理 5. Charles 主 ...

  10. (简单) POJ 3074 Sudoku, DLX+精确覆盖。

    Description In the game of Sudoku, you are given a large 9 × 9 grid divided into smaller 3 × 3 subgr ...