Quartz 2D
来源:互联网 发布:公司域名申请流程 编辑:程序博客网 时间:2024/05/16 11:17
Quartz 2D是一组函数、数据类型以及对象,专门用于直接在内存中对视图或图像进行绘制,它将正在绘制的视图或者图像视为一个虚拟的画布。
1.视图绘画周期:
DrawRect方法,在任何时候,当视图的一部分需要重画时会调用。
触发调用的四种情况:
1>对遮挡您的视图的其它视图进行移动或删除操作。
2>将视图的hidden属性声明设置为NO,使其从隐藏状态变为可见。
3>将视图滚出屏幕,然后再重新回到屏幕上。
4>显式调用视图的setNeedsDisplay或者setNeedsDisplayInRect:方法。
2.坐标
视图坐标系统是以左上角为原点,向右、下延伸。Quartz2D中则是以左下角为原点,向右、上延伸。
3.图形绘制环境
图形绘制环境是对绘制环境(设备)的一个描述、封装,类型是(CGContextRef)。
图形绘制环境可以是pdf文件、位图、window、layer等。
CGContextRef context = UIGraphicsGetCurrentContext();
注:有的帖子上把Context翻译成图形上下文,个人觉得应该为图形绘制环境。
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;可见这种方式比较省事。
代码实现,
1、在视图中画一条直线:
在view的
- (void)drawRect:(CGRect)rect方法中添加如下代码:
//检索当前上下文
CGContextRef context =UIGraphicsGetCurrentContext();
//直线的宽度
CGContextSetLineWidth(context,4.0);
//直线开始位置
CGContextMoveToPoint(context,10.0f,10.0f);
//直线颜色
CGContextSetStrokeColorWithColor(context, [UIColorredColor].CGColor);
//直线最终位置
CGContextAddLineToPoint(context,60.0f,80.0f);
//绘制直线
CGContextStrokePath(context);
在view的
- (void)drawRect:(CGRect)rect方法中添加如下代码:
//检索当前上下文
CGContextRef context =UIGraphicsGetCurrentContext();
//定义绘图区域
CGRect rect1 =CGRectMake(0,0,100, 100);
CGContextAddEllipseInRect(context, rect1);
//线条颜色
CGContextSetStrokeColorWithColor(context, [UIColorwhiteColor].CGColor);
CGContextDrawPath(context,kCGPathFillStroke);
//绘制图形
CGContextStrokePath(context);
- Quartz 2D 绘图d
- Quartz 2d资料
- Quartz 2D 基础
- Quartz - 2D学习
- Quartz 2D (-)
- IOS Quartz 2D
- Quartz 2D 学习
- Quartz 2D 裁剪
- Quartz 2D - 绘线
- Quartz 2D 裁剪
- quartz 2D
- Quartz 2D
- Quartz 2D
- Quartz 2D
- quartz 2D 大纲
- quartz 2D 总结
- Quartz 2D绘图
- Quartz 2D 绘图
- javascript-arguments实现函数重载
- POJ1837:Balance(01背包)
- 文本分类入门特征选择算法之开方检验
- Oracle EBS R12.0.6 - 禁用Command Line JVM System Properties设置的全局Low-level logging
- 用Ant实现Java项目的自动构建和部署
- Quartz 2D
- Works applications 笔试题(2)
- leetcode: Implement strStr()
- Linux驱动之设备模型(3)
- 继承、实现、依赖、关联、聚合、组合的联系与区别
- 三色需求—事业成功的基因
- Hibernate实战_笔记16(分析领域模型)
- 用python计算top命令中某个进程的CPU,Memory使用情况
- mysql为已经存在的表的id改为自增