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 ...
随机推荐
- JMS学习以及jms的实现activeMq
1.JMS规范介绍: http://www.cnblogs.com/hapjin/p/5431706.html http://elim.iteye.com/blog/1893038 http://bl ...
- Implementation of WC in JAVA
Implementation of WC in JAVA github地址 相关要求 基本功能 -c [文件名] 返回文件的字符数 (实现) -w [文件名] 返回文件的词的数目 (实现) -l [文 ...
- Python自动化开发 - Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy 一.pymysql pymsql是Python中操作MySQL的模块,其使用方法和mysq ...
- QuartzNet使用
quartz.config # You can configure your scheduler in either <quartz> configuration section # or ...
- Git安装学习记录
1.下载: https://gitforwindows.org/ 2.安装:https://blog.csdn.net/chengyuqiang/article/details/54178683 3. ...
- 面向对象总结、configparser配置文件模块、logging日志模块
面向对象总结 # 学习态度# python基础 2个月# html css js jq 1个月 # 上课困 # 学习方法 :# 列出知识点# 例子 写了哪些 # 面向对象学了哪些块# 为什么要讲面向对 ...
- Swift5 语言指南(二十四) 泛型
通用代码使您能够根据您定义的要求编写可以使用任何类型的灵活,可重用的函数和类型.您可以编写避免重复的代码,并以清晰,抽象的方式表达其意图. 泛型是Swift最强大的功能之一,Swift标准库的大部分内 ...
- app绘制手势密码 、九宫格分解
什么是九宫格? 即是我们常见的手势绘制.一共有9个点,让我们进行绘制手势.我们手动操作的时候,通过是按住第一个点,然后移动到最后一点,然后松开,就完成手势的操作,那么,如果要用自动化代码,来让其自动绘 ...
- 06-02 Java值传递、数据加密
值传递: /* 思考题1:看程序写结果,然后分析为什么是这个样子的.并画图讲解.最后总结Java中参数传递规律. Java中的参数传递问题: 基本类型:形式参数的改变对实际参数没有影响.基本类型传递的 ...
- web工程迁移---在一个jboss5或jboss6中运行多个实例
在工作中遇到的,如何在一个jboss中运行多个节点(segment). 我使用的环境是win7.jboss5.jboss6.JDK6 1.jboss5下运行多个实例 第一步不用说,首先要在环境变量中设 ...