IOS Quartz 2D 学习(1)
IOS提供两种创建图形的途径:
1.OpenGL.
2.Quartz、Core Animation、UIKit图形支持.
UIKit的图形系统
1.视图绘画周期:
DrawRect方法,在任何时候,当视图的一部分需要重画时会调用。
触发调用的四种情况:
1>对遮挡您的视图的其它视图进行移动或删除操作。
2>将视图的hidden属性声明设置为NO,使其从隐藏状态变为可见。
3>将视图滚出屏幕,然后再重新回到屏幕上。
4>显式调用视图的setNeedsDisplay或者setNeedsDisplayInRect:方法。
2.坐标
视图坐标系统是以左上角为原点,向右、下延伸。Quartz2D中则是以左下角为原点,向右、上延伸。
3.图形上下文
图形上下文是对绘制环境(设备)的一个描述、封装,类型是(CGContextRef)。
图形上下文可以是pdf文件、位图、window、layer等。
4.Quartz颜色的使用
4.1首先要创建颜色空间:
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();//创建GRB颜色空间
使用完毕后要释放颜色空间:
CGColorSpaceRelease(colorspace);
附:CGColorSpaceCreateDeviceGray() and CGColorSpaceCreateDeviceCMYK() 分别用来创建灰度、工业色彩空间
4.2创建元素
CGFloat components[] = {0.0, 0.0, 1.0, 0.5};//创建了RGBA的蓝色元素
4.3使用颜色空间、元素创建颜色数据结构
CGColorRef color = CGColorCreate(colorspace, components);
使用完毕同样要释放CGColorRelease(color);
还有一种方式创建颜色:使用UIColor类,需要转换一下:[UIColor redColor].CGColor;可见这种方式比较省事。
http://blog.sina.com.cn/s/blog_726dee1101016oaf.html
IOS Quartz 2D 学习(1)的更多相关文章
- iOS - Quartz 2D 二维绘图
1.Quartz 2D 简介 Quartz 2D 属于 Core Graphics(所以大多数相关方法的都是以 CG 开头),是 iOS/Mac OSX 提供的在内核之上的强大的 2D 绘图引擎,并且 ...
- iOS - Quartz 2D 贝塞尔曲线
1.贝塞尔曲线 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线.一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支 ...
- iOS - Quartz 2D 第三方框架 Charts 绘制图表
1.Charts 简介 使用第三方框架 Charts 绘制 iOS 图表.GitHub 源码 Charts Charts 是一款用于绘制图表的框架,可以绘制柱状图.折线图.K线图.饼状图等.Chart ...
- iOS - Quartz 2D 画板绘制
1.绘制画板 1.1 绘制简单画板 PaintBoardView.h @interface PaintBoardView : UIView @end PaintBoardView.m @interfa ...
- iOS - Quartz 2D 手势截屏绘制
1.绘制手势截屏 具体实现代码见 GitHub 源码 QExtension QTouchClipView.h @interface QTouchClipView : UIView /** * 创建手势 ...
- iOS - Quartz 2D 下载进度按钮绘制
1.绘制下载进度按钮 具体实现代码见 GitHub 源码 QExtension QProgressButton.h @interface QProgressButton : UIButton /// ...
- iOS 2D绘图 (Quartz 2D) 概述
本篇博客原文地址:http://blog.csdn.net/hello_hwc?viewmode=list 由于自己的项目需要,从网络上下载了许多关于绘制图形的demo,只是用在自己的项目中,很多地方 ...
- iOS 2D绘图详解(Quartz 2D)之概述
前言:最近在研究自定义控件,由于想要彻底的定制控件的视图还是要继承UIView,虽然对CALayer及其子类很熟练,但是对Quartz 2D这个强大的框架仍然概念模棱两可.于是,决定学习下,暂定7篇文 ...
- Quartz 2D在ios中的使用简述一:坐标体系
Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境,官方文档:Quartz 2D Programming Guide. 一.坐标体系 这样的坐标体系就导致我们使用Quart ...
随机推荐
- java springboot整合zookeeper入门教程(增删改查)
java springboot整合zookeeper增删改查入门教程 zookeeper的安装与集群搭建参考:https://www.cnblogs.com/zwcry/p/10272506.html ...
- 【Flask】Flask Cookie操作
### 什么是cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第 ...
- jQuery鼠标滑动切换焦点图
在线演示 本地下载
- Oracle数据类型(4)
字符类型: CHAR(size):固定长度字符串,最大长度2000 bytes VARCHAR2(size):可变长度的字符串,最大长度4000 bytes,可做索引的最大长度749 NCHAR(si ...
- viewport大白话
以下所有内容均是我自己理解的,可能有误,懂得大佬希望指点一下我.. 首先,写一个简单的页面.里面只有1个200*200的div <html lang="en"> < ...
- H3C交换机配置镜像端口
配置步骤 进入配置模式:system-view: 创建本地镜像组:mirroring-group 1 local 为镜像组配置源端口:mirroring-group 1 mirroring-port ...
- 【P3355】骑士共存问题(最大流+黑白染色,洛谷)
这个题刚看上去就让人不禁想到一道叫做方格取数问题的题目,事实上也就是这么做,对棋盘黑白染色,然后黑格子连源点,白的连汇点,点权为1.然后判断一下黑格子能影响到的白格子,边权为inf,跑一遍最大流就可以 ...
- forever让nodejs后台运行
nodejs一般是当成一条用户命令执行的,当用户断开客户连接,运用也就停了,很烦人.如何让nodejs应用当成服务,在后台执行呢? 最简单的办法: $ nohup node app.js 但是,for ...
- 关于eclipse中看不到源码的问题
这几步之后会生成一个src压缩包,再用att打开即可.记住 要按ctrl再点击
- TED字幕摘抄
1.丹·吉尔伯特: 我们为什么快乐?http://v.163.com/movie/2012/12/0/S/M8HHB6LDT_M8HHCBM0S.html 在两百万年中, 大脑脑容量从我们祖先能人的1 ...