Quartz2D 画图学习
来源:互联网 发布:js如何转换日期格式 编辑:程序博客网 时间:2024/06/02 00:01
Quartz2D自定义View1、新建一个类,继承UIView2、实现 - (void)drawRect:(CGRect)rect方法,然后在这个方法中2-1、取得跟当前View相关联的图形上下文2-2、绘制相应的图形内容2-3、利用图形上下文将绘制的所有内容渲染显示到View上面CGContextStrokePath 空心CGContextFillPath 实心CGContextSetLineWidth(ctx, 10);//设置线宽CGContextSetLineCap(ctx, kCGLineCapRound);//设置直线俩端是圆形CGContextSetLineJoin(ctx, kCGLineJoinBevel);//设置转折点也为弧形,切除尖角//设置颜色的多种方法CGContextSetRGBStrokeColor(ctx, 1.0, 0, 0, 1);//设置颜色[[UIColor blueColor] setStroke];//设置颜色,这里设置实心和空心[[UIColor blueColor] set];//设置位蓝色,通用///////////////////////////////////////////////////////////////案例一:画直线/** * 自定义View画图 * 这里采用的是纯C语言语法 * 采用框架都是CG开头 */- (void)drawRect:(CGRect)rect{ //1、取得跟当前View相关联的图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //2、绘制相应的图形内容 //2-1、设置一条直线 CGContextMoveToPoint(ctx, 0, 0);//设置一个起点 CGContextAddLineToPoint(ctx, 100, 100);//添加一条线段 CGContextAddLineToPoint(ctx, 100, 120);//连接上面一条直线 //3、利用图形上下文将绘制的所有内容渲染显示到View上面 CGContextStrokePath(ctx);}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////案例二:画图形#import "ShapeView.h"@implementation ShapeView/** * 画图形 */-(void)drawRect:(CGRect)rect{ //drawLine(); drawTriangle(); //draw4Rect();}/** * 画直线 */void drawLine(){ CGContextRef ctx = UIGraphicsGetCurrentContext(); //画直线 CGContextMoveToPoint(ctx, 20, 20); CGContextAddLineToPoint(ctx, 100, 100); CGContextAddLineToPoint(ctx, 10, 130); CGContextSetLineWidth(ctx, 10); CGContextSetLineCap(ctx, kCGLineCapRound);//设置直线俩端是弧形 CGContextSetLineJoin(ctx, kCGLineJoinBevel);//设置转折点也为弧形,切除尖角 CGContextStrokePath(ctx);//空心}/** * 画三角形 */void drawTriangle(){ CGContextRef ctx = UIGraphicsGetCurrentContext(); //2、画三角形 CGContextMoveToPoint(ctx, 0, 0); CGContextAddLineToPoint(ctx, 100, 100); CGContextAddLineToPoint(ctx, 150, 80); CGContextClosePath(ctx); CGContextSetLineWidth(ctx, 10);//设置线宽 //设置颜色 //CGContextSetRGBStrokeColor(ctx, 1.0, 0, 0, 1); //[[UIColor blueColor] setStroke]; [[UIColor blueColor] set]; CGContextStrokePath(ctx);//空心 //CGContextFillPath(ctx);//实心}/** * 画四边形 */void draw4Rect(){ CGContextRef ctx = UIGraphicsGetCurrentContext(); //2、画一个矩形 CGContextAddRect(ctx, CGRectMake(10, 10, 100, 100)); CGContextStrokePath(ctx);}@end///////////////////////////////////////////////////////////////画圆形#import "CircleView.h"@implementation CircleView- (void)drawRect:(CGRect)rect{ //drawCircle(); //drawCircle2(); drawCircle3();}/** * 综合画:画四分之一 */void drawCircle3(){ //1、获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //2、画四分之一圆 CGContextMoveToPoint(ctx, 100, 100); CGContextAddLineToPoint(ctx, 100, 150); CGContextAddArc(ctx, 100, 100, 50, M_PI_2, M_PI, 0); //CGContextAddLineToPoint(ctx, 100, 100); CGContextClosePath(ctx);//合并路径 [[UIColor redColor] set]; //3、显示所绘制内容 //CGContextStrokePath(ctx); CGContextFillPath(ctx);}/** * 画圆 */void drawCircle(){ CGContextRef ctx = UIGraphicsGetCurrentContext(); //画圆 CGContextAddEllipseInRect(ctx, CGRectMake(10, 10, 100, 100)); //画椭圆 CGContextAddEllipseInRect(ctx, CGRectMake(10, 10, 200, 100)); CGContextStrokePath(ctx);//空心 }/** * 画圆弧 */void drawCircle2(){ CGContextRef ctx = UIGraphicsGetCurrentContext(); //画圆 /** x\y :圆心 radius :半径 startAngle:开始角度 endAngle:结束角度 clockwise:圆弧的伸展方向(0:顺时针 1:逆时针) */ CGContextAddArc(ctx, 100, 100, 60, 0, M_PI, 0); CGContextStrokePath(ctx); }@end///////////////////////////////////////////////////////////////摘抄到自己的博客,整个画图的整理(重点)http://donbe.blog.163.com/blog/static/138048021201052093633776////////////////////////////////////////////////////////////////画文字和图片#import "TextImageView.h"@implementation TextImageView- (void)drawRect:(CGRect)rect{ //drawText(); drawImg();}/** * 画图片 */void drawImg(){ //1、取得图片 UIImage *image = [UIImage imageNamed:@"me"]; //2、画 //[image drawAtPoint:CGPointMake(50, 50)];//图片原始画到某个点位置 //[image drawInRect:CGRectMake(0, 0, 150, 150)];//图片拉伸画到某个位置 [image drawAsPatternInRect:CGRectMake(0, 0, 200, 200)];//重复,平铺,就是以前网页背景}/** * 画文字 */void drawText(){ //1、获取上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //2、画文字 NSString *str = @"哈哈Hello Moring"; //在某个点画文字 [str drawAtPoint:CGPointZero withAttributes:nil]; //在某个区域内画 CGRect cubeRect = CGRectMake(50, 50, 100, 100); NSMutableDictionary *attrs = [NSMutableDictionary dictionary]; //NSForegroundColorAttributeName 文字yanse attrs[NSForegroundColorAttributeName] = [UIColor redColor]; //NSFontAttributeName 字体大小 attrs[NSFontAttributeName] = [UIFont systemFontOfSize:20]; [str drawInRect:cubeRect withAttributes:attrs]; //3、显示 CGContextStrokePath(ctx);}@end
0 0
- Quartz2D 画图学习
- Quartz2D画图
- Quartz2d 画图
- iOS-Quartz2D画图
- Quartz2D 画图(圆形头像)
- iOS-Quartz2D 之 画图预览笔记
- Quartz2D 画图工具的基本使用
- quartz2D 学习 1
- quartz2D 学习 2
- IOS学习之Quartz2D
- Quartz2D学习笔记
- Quartz2D学习笔记
- Quartz2D 学习札记
- Quartz2D学习笔记
- iOS学习笔记--Quartz2D
- iOS学习 - Quartz2D绘图学习
- 浅谈 Quartz2D 在开发中的用处 - 画图形
- IOS Quartz2D 学习一 手写板
- 分类算法简介
- C#中的线程(中)-线程同步
- 深度学习论文笔记-Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
- [数据结构笔记-线性表]
- Tomcat 系统架构与设计模式
- Quartz2D 画图学习
- Java 中对数组进行封装
- C++多态机制
- java中volatile关键字的含义
- Linux 与 unix shell编程指南——学习笔记
- 树链剖分 FZU 2082
- HTML5 绘图元素Canvas与SVG的对比(初学入门)
- 软件版本中的Alpha,Beta,RC,Trial是什么意思?
- Immutable集合