Quart2D图形上下文
学习了下绘制文本图形后,下面学习图形上下文栈。
在Quart 2D绘制简单图形http://www.cnblogs.com/cuiyw/p/4401857.html时,如果绘制不一样属性的内容时,在渲染之前都会重新设置边框颜色、填充颜色等这些,有时可能会先绘制一个红色的线,再绘制蓝色的线,然后再绘制和第一条属性一样的线,如果按之前的方法可能每次绘制渲染都要重新设置,那样就会变的特别麻烦,要解决这个问题可以用图形上下文栈。
在获取图形上下文之后,通过 CGContextSaveGState(ctx);方法,把当前获取的上下文拷贝一份,保存一份最纯洁的图形上下文。
CGContextRef context=UIGraphicsGetCurrentContext();
CGContextMoveToPoint(context, 20, 100);
CGContextAddLineToPoint(context, 30, 200);
CGContextSetRGBStrokeColor(context, 1.0, 0, 1.0, 1.0);
//保存当前画布1的样式属性
CGContextSaveGState(context);
CGContextStrokePath(context);
CGContextMoveToPoint(context, 30, 100);
CGContextAddLineToPoint(context, 40, 200);
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0);
//保存当前画布2的样式属性
CGContextSaveGState(context);
CGContextStrokePath(context);
// 恢复画布2属性到以前保存样式 若无则按最近一次设置的样式
CGContextRestoreGState(context);
CGContextMoveToPoint(context, 40, 100);
CGContextAddLineToPoint(context, 50, 200);
CGContextStrokePath(context);
// 恢复画布1属性到以前保存样式 若无则按最近一次设置的样式
CGContextRestoreGState(context);
CGContextMoveToPoint(context, 50, 100);
CGContextAddLineToPoint(context, 60, 200);
CGContextStrokePath(context);
运行结果:

Quart2D图形上下文的更多相关文章
- Quartz2D 编程指南(一)概览、图形上下文、路径、颜色与颜色空间
概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 0.说明 本篇博客主要是对官方文档 ...
- iOS开发UI篇—Quartz2D使用(图形上下文栈)
iOS开发UI篇—Quartz2D使用(图形上下文栈) 一.qurza2d是怎么将绘图信息和绘图的属性绘制到图形上下文中去的? 说明: 新建一个项目,自定义一个view类和storyboard关联后, ...
- Cocoa Drawing Guide学习part1——基础和图形上下文 (转)
原文:http://noark9.github.io/2013/12/28/cocoa-drawing-guide-study-part-1/ 简介 cocoa drawing由AppKit提供并且也 ...
- 【iOS】Quartz2D图形上下文
一.绘图的完整过程 程序启动,显示自定义的view.当程序第一次显示在我们眼前的时候,程序会调用drawRect:方法,在里面获取了图形上下文(在内存中拥有了),然后利用图形上下文保存绘图信息,可 ...
- Quartz 2D 图形上下文栈 矩阵 裁剪
Quartz 2D 图形上下文栈 矩阵 // // DJVIew.m // 图形上下文栈 // // Created by zjj on 15/6/30. // Copyright (c) 2015 ...
- Quartz-2D绘图之图形上下文详解
上一篇文章大概描述了下Quartz里面大体所包含的东西,但是对具体的细节实现以及如何调用相应API却没有讲.这篇文章就先讲讲图形上下文(Graphics Context)的具体操作. 所谓Graphi ...
- iPhone之Quartz 2D系列--图形上下文(2)(Graphics Contexts)
以下几遍关于Quartz 2D博文都是转载自:http://www.cocoachina.com/bbs/u.php?action=topic&uid=38018 iPhone之Quartz ...
- Quartz 2D - 图形上下文(Graphics Contexts)
一个Graphics Context表示一个绘制目标.它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息.Graphics Context定义了基本的绘制属性,如颜色.裁减区域.线条宽度和样式信息 ...
- 图形上下文导论(Introduction to SWT Graphics)zz
图形上下文导论(Introduction to SWT Graphics) 摘要: org.eclipse.swt.graphics包(package),包含了管理图形资源的类.只要实现了org.ec ...
随机推荐
- uva10905同一思路的两种做法,前一种WA,后一种AC
这道题应该算一道普通的排序吧,实际上就是另一种形式地比大小,自己最开始是用int型存,后来觉着不行,改用long,结果还是WA,这是第一个程序. 第二个程序是改用string处理,确实比int方便很多 ...
- PhantomJS快速入门-无界面浏览器
https://blog.csdn.net/libsyc/article/details/78199850 PhantomJS快速入门 本文简要介绍了PhantomJS的相关基础知识点,主要包括Pha ...
- cxGrid 怎样才能让不自动换行 WordWrap:=false
cxGrid 怎样才能让不自动换行 WordWrap:=false 2014-12-26 02:04:03| 分类: delphi|举报|字号 订阅 下载LOFTER我的照片书 | ...
- Android-Java-对象在内存中的简单关系图
代码案例一: package android.java.oop02; class Student { public int age; public String name; public void s ...
- Page_Load是怎样被执行的
关于Asp.Net的生命周期的文章,很多很多,不管是管道生命周期,还是页面生命周期,图文并茂的文章并不少,我就不说了,我只是在复习这些知识点的时候,想具体知道一个页面的Page_Load方法到底是怎么 ...
- C#读取excel文件提示未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
错误描述: 在VS2010执行读取excel文件时,报错"未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序" 业务代码: //下 ...
- C#复数类的总结
复数是C#中没有的,不能直接调用的.但是我们可以通过封装,构造自己的复数形式.这里我自己封装了一个Complex类,也不知道写得如何.可能还有一些东西没有考虑. 不过这里包含了复数的基本晕算了了,包括 ...
- wpf根据X与Y轴获取内部值
效果图: 环境 Visual Studio ,.Net Framework 4.0 SDK 支持Windows XP,Windows Win7.. 实现方法: 创建ListBox设置ListBox.I ...
- AJPFX:外汇的点差和点值
外汇“点差”就是交易商买卖货币之间产生的差值. 要了解点差我们先解释一下“点”的含义:为了精确和方便地表示汇价,一般用5位数字表示,其中最小变化的单位就称为"点".例如:英镑美元货 ...
- Python3.5 学习十九 Django分模块讲解 MTV+URL
本节内容概述: 表单提交的Method使用规则:get 获取数据 post提交数据 单选使用get 多选使用getlist request.POST.getlist("favor" ...