Quartz2D
http://donbe.blog.163.com/blog/static/138048021201052093633776/ 详解

代码如下:
DJView 绘制线段 基本图形
//
// DJView.m
// 基本图形绘制
//
// Created by zjj on 15/6/27.
// Copyright (c) 2015年 zjj. All rights reserved.
// #import "DJView.h" @implementation DJView /**
* 绘制两个三角形
*/
- (void)drawRect:(CGRect)rect {
//1获取上下文
CGContextRef ctr = UIGraphicsGetCurrentContext();
//2拼接一个图形
// 2.0设置A起点
// 设置颜色
CGContextSetRGBStrokeColor(ctr, , , , );
CGContextMoveToPoint(ctr, , );
// 2.1设置A终点
CGContextAddLineToPoint(ctr, , );
CGContextAddLineToPoint(ctr, , );
// 3渲染到屏幕上(空心)
CGContextStrokePath(ctr); CGContextMoveToPoint(ctr, , );
// 设置颜色
CGContextSetRGBStrokeColor(ctr, , , , );
CGContextAddLineToPoint(ctr, , );
CGContextAddLineToPoint(ctr, , );
// 2.2设置B终点
CGContextAddLineToPoint(ctr, , );
// 2.3设置C终点
CGContextAddLineToPoint(ctr, , );
//链接终点
// CGContextClosePath(ctr);
// 3渲染到屏幕上(实心)
// CGContextFillPath(ctr);
// 3渲染到屏幕上(空心)
CGContextStrokePath(ctr);
[self hourglass];
[self juxing];
}
/**
* 绘空心矩形
*/
- (void)juxing
{
CGContextRef ctr = UIGraphicsGetCurrentContext();
// 设置线段宽度
CGContextSetLineWidth(ctr, );
// 设置颜色
// CGContextSetRGBStrokeColor(ctr, 0, 0, 0, 1);
// [[UIColor blackColor]setStroke];//(推荐设置颜色方式)
[[UIColor blackColor]set];//实心空心通用 setStroke设置空心颜色 setFill 设置实心颜色
// 设置线段头尾部样式
CGContextSetLineCap(ctr, kCGLineCapRound);
// 设置线段转折点样式
CGContextSetLineJoin(ctr, kCGLineJoinRound);
CGContextAddRect(ctr, CGRectMake(, , , ));
CGContextStrokePath(ctr);
}
- (void)hourglass
{
//1获取上下文
CGContextRef ctr = UIGraphicsGetCurrentContext();
//2拼接一个图形
// 2.0设置A起点
// 设置颜色
// CGContextSetRGBStrokeColor(ctr, 0, 1, 1, 1);
// [[UIColor blackColor] setFill];
CGContextMoveToPoint(ctr, , );
// 2.1设置A终点
CGContextAddLineToPoint(ctr, , );
CGContextAddLineToPoint(ctr, , );
CGContextAddLineToPoint(ctr, , );
CGContextAddLineToPoint(ctr, , );
// 2.2设置B终点
CGContextAddLineToPoint(ctr, , ); //链接终点
CGContextClosePath(ctr);
// 3渲染到屏幕上(空心)
// CGContextStrokePath(ctr);
// 3渲染到屏幕上(实心)
CGContextFillPath(ctr);
}
@end
DJCircle 代码 绘制几何图形
//
// DJCircle.m
// 基本图形绘制
//
// Created by zjj on 15/6/27.
// Copyright (c) 2015年 zjj. All rights reserved.
// #import "DJCircle.h" @implementation DJCircle // Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
[self drawArc];
[self drawCircle];
}
// 画圆弧
- (void)drawArc
{
CGContextRef crf = UIGraphicsGetCurrentContext();//获得上下文
CGContextAddArc(crf,, , , , M_PI, );
[[UIColor redColor] set];//设置颜色
CGContextFillPath(crf);// 渲染 现实所绘制的东西 CGContextRef crf1 = UIGraphicsGetCurrentContext();//获得上下文
CGContextAddArc(crf1,, , , , M_PI, );
CGContextFillPath(crf1);// 渲染 现实所绘制的东西
//风车
// 上面圆弧
CGContextRef crf2 = UIGraphicsGetCurrentContext();//获得上下文
CGContextAddArc(crf2,, , , -M_PI_2, M_PI_2, );
CGContextFillPath(crf2);// 渲染 现实所绘制的东西
//右边圆弧
CGContextRef crf3 = UIGraphicsGetCurrentContext();//获得上下文
CGContextAddArc(crf3,, , , , M_PI, );
CGContextFillPath(crf3);// 渲染 现实所绘制的东西
//下边圆弧
CGContextRef crf4 = UIGraphicsGetCurrentContext();//获得上下文
CGContextAddArc(crf4,, , , -M_PI_2, M_PI_2, );
CGContextFillPath(crf4);// 渲染 现实所绘制的东西
//左边圆弧
CGContextRef crf5 = UIGraphicsGetCurrentContext();//获得上下文
CGContextAddArc(crf5,, , , , M_PI, );
CGContextFillPath(crf5);// 渲染 现实所绘制的东西
//3/4圆弧
CGContextRef crf6 = UIGraphicsGetCurrentContext();//获得上下文
CGContextAddArc(crf6,, , , M_PI_2, M_PI, );
CGContextFillPath(crf6);// 渲染 现实所绘制的东西
//1/4左边圆弧
CGContextRef crf7 = UIGraphicsGetCurrentContext();//获得上下文
CGContextAddArc(crf7,, , , M_PI, M_PI_2, );
CGContextFillPath(crf7);// 渲染 现实所绘制的东西 //25%圆
CGContextRef crf8 = UIGraphicsGetCurrentContext();//获得上下文
CGContextMoveToPoint(crf8, , );
CGContextAddLineToPoint(crf8, , );
CGContextAddArc(crf8,, , , M_PI_2, M_PI, );
CGContextClosePath(crf8);
CGContextFillPath(crf8);// 渲染 现实所绘制的东西
} - (void)drawCircle
{
//画实心圆
CGContextRef crf = UIGraphicsGetCurrentContext();//获得上下文
CGContextAddEllipseInRect(crf,CGRectMake(, , , ));//画圆
[[UIColor blueColor] set];//设置颜色
CGContextFillPath(crf);// 渲染 现实所绘制的东西
//画圆圈/圆环
CGContextRef crf1 = UIGraphicsGetCurrentContext();
CGContextAddEllipseInRect(crf1,CGRectMake(, , , ));
CGContextSetLineWidth(crf1, );
CGContextStrokePath(crf1);
//画同心圆圈/圆环
CGContextRef crf2 = UIGraphicsGetCurrentContext();
CGContextAddEllipseInRect(crf2,CGRectMake(, , , ));
CGContextSetLineWidth(crf2, );
CGContextStrokePath(crf2);
} @end
DJTextImageView 绘制图片和文字
//
// DJTextImageView.m
// 基本图形绘制
//
// Created by zjj on 15/6/28.
// Copyright (c) 2015年 zjj. All rights reserved.
// #import "DJTextImageView.h" @implementation DJTextImageView
/**
* 涂鸦 withAttributes: 字典设置用什么属性 如颜色字体大小
*/
- (void)drawRect:(CGRect)rect
{
[self drawImg];
[self drawTest]; }
- (void)drawImg
{ UIImage *img = [UIImage imageNamed:@"格子1.jpg"];
// [img drawAtPoint:CGPointZero];
// [img drawInRect:CGRectMake(110, 10, 100, 100)];
[img drawAsPatternInRect:CGRectMake(, , , )];//平铺图片
NSString *strShuiyin = @"水印http://www.DJweibo.com/168";
UIImage *pngs = [UIImage imageNamed:@"格子.jpg"];
NSMutableDictionary *arrs = [NSMutableDictionary dictionary];
arrs[NSForegroundColorAttributeName] = [UIColor whiteColor];
[strShuiyin drawInRect:CGRectMake(, , , ) withAttributes:arrs];
[pngs drawInRect:CGRectMake(, , , )]; } /**
* 画文字 withAttributes: 字典设置用什么属性 如颜色字体大小
*/
- (void)drawTest
{
CGRect rects = CGRectMake(, , , );
// 画一个矩形框
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddRect(ctx, rects);
// CGContextFillPath(ctx);
CGContextStrokePath(ctx);
//画文字
NSMutableDictionary *arrs = [NSMutableDictionary dictionary];
arrs[NSForegroundColorAttributeName] = [UIColor redColor];
arrs[NSFontAttributeName] = [UIFont systemFontOfSize:]; NSString *str = @"土地是以它的肥沃和收获而被估价的;才能也是土地,不过它生产的不是粮食,而是真理。如果只能滋生瞑想和幻想的话,即使再大的才能也只是砂地或盐池,那上面连小草也长不出来的。 —— 别林斯基";
//[str drawAtPoint:CGPointZero withAttributes:nil];
[str drawInRect:rects withAttributes:arrs];
}
@end
Quartz2D的更多相关文章
- Quartz2D总结
天了噜,脑子完全懵了,最起码说出来个上下文啊,连这个都给忘了,特此总结一下,并以此缅怀这次面试 Quartz2D的API来自于Core Graphics(这就是为什么CGContextRef是以CG开 ...
- 【原】iOS学习之Quartz2D(1)
什么是Quartz2D 1.Quartz 2D 是一个二维绘图引擎,同时支持iOS和Mac系统 2.Quartz 2D 能完成的工作: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成 ...
- Quartz2D 编程指南(三)渐变、透明层 、数据管理
概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 渐变 简介 渐变是从一个颜色到另外 ...
- Quartz2D 编程指南(一)概览、图形上下文、路径、颜色与颜色空间
概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 0.说明 本篇博客主要是对官方文档 ...
- Quartz2D之绘制一个简单的机器猫
学习iOS有一段时间了,在博客园也默默的潜水了两个月,见识了很多大神,收获不少. 今天整理笔记,发现忘记的不少,我感觉需要及时的整理一下了,同时也把做的小东西贴上来和大家分享一下. 最近学习了Quar ...
- Quartz2D 画大白
今天初始Quartz2D,我好激动啊,也好开心,莫名的会喜欢带有图形相关的课程…… 好啦,闲话少说,今天用Quartz2D方法画了最最爱的大白.迫不及待的想要和大家分享. 1.首先实例化了view 2 ...
- Quartz2D复习(一)--- 基础知识 / 绘制线段圆弧 / 图片水印 / 截图
1.Quartz 2D是一个二维绘图引擎,同时支持ios和Mac系统: Quart2D的API是纯C语言的,API来自于Core Graphics框架: 2.Quartz 2D可以绘制图形(线段/三 ...
- Quartz-2D
Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境.我们可以使用Quartz 2D API来实现许多功能,如基本路径的绘制.透明度.描影.绘制阴影.透明层.颜色管理.反锯齿 ...
- iOS开发——UI进阶篇(十五)Quartz2D介绍
一.Quartz2D简介 1.什么是Quartz2DQuartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作绘制图形 : 线条\三角形\矩形\圆\弧等绘制文字绘 ...
- iOS开发UI篇—Quartz2D使用(绘制基本图形)
iOS开发UI篇—Quartz2D使用(绘制基本图形) 一.简单说明 图形上下文(Graphics Context):是一个CGContextRef类型的数据 图形上下文的作用:保存绘图信息.绘图状态 ...
随机推荐
- Java 14 类型信息
14 类型信息 运行是识别对象和类的信息 两种方式RTTI 假定编译时已经知道所有的类型反射 运行时发现和使用类的信息 1 RTTI //多态 创建一个具体的对象(Circle Square Tria ...
- js 高程(三)学习感言(随时更新)
1.读第二遍了,感觉第一遍白读了. 2.现在还处于初学...
- D3.js 让图表动起来
D3 支持制作动态的图表.有时候,图表的变化需要缓慢的发生,以便于让用户看清楚变化的过程,也能给用户不小的友好感. 一.什么是动态效果 绘制完成后不再发生变化的,这是静态的图表. 动态的图表,是指图表 ...
- jQuery数组的遍历 function的加载
加载函数时会被覆盖在jQuery中给提供的方案有三种形式 js中只能绑定一个方法 如果多次绑定后者会覆盖前者 最常用的一种 在jQuery中数组的遍历 使用map遍历数组 会返回一个新的数组 如果 ...
- ios app 支持 ipv6-only
最近苹果公司发布声明:自今年6月1日开始,所有提交至苹果App Store的应用申请必须要兼容面向硬件识别和网络路由的最新互联网协议--IPv6-only标准. 那么问题来了,目前的app是否支持ip ...
- Ubuntu安装nodeJS
安装环境 ubuntu12.04 64bit nodejs-v0.8.14.tar.gz Node.js是一个基于google v8+javascript的服务端编程框架.但是Node.js又不是js ...
- 在VBA中调用工作表函数
虽然VBA几乎可以完成所有工作表函数的功能,但是有时候在无法打开思路的时候,适当调用一些工作表函数也未尝不可,在VBA中调用工作表函数需要用到 WorksheetFunction对象,例如: Work ...
- [接口服务] Jersey Rest Demo
http://files.cnblogs.com/files/avivaye/RestProject.rar
- (29)odoo的可用小图标
* 系统的小图标都采用了 fontawesome 官网是 http://fontawesome.dashgame.com/ * 运用小图标 # 首先打开官网 http://fonta ...
- 张艾迪Eidyzhang:解码天才Eidyzhang的诞生
AOA解码:天才Eidyzhang的诞生AOA深度解读:世界第一天才Eidyzhang: (TheWorldNo.1Girl+TheWorldNo.1InterentGirl+世界第一女孩+世界第一互 ...