拷贝被人的drawRect绘图分类用途,用法很全。留着、供用时参考

// Only override drawRect: if you perform custom drawing.

// An empty implementation adversely affects performance during animation.

- (void)drawRect:(CGRect)rect

{

CGContextRef context = UIGraphicsGetCurrentContext();

/*NO.1画一条线

CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 0.5);//线条颜色

CGContextMoveToPoint(context, 20, 20);

CGContextAddLineToPoint(context, 200,20);

CGContextStrokePath(context);

*/

/*NO.2写文字

CGContextSetLineWidth(context, 1.0);

CGContextSetRGBFillColor (context, 0.5, 0.5, 0.5, 0.5);

UIFont  *font = [UIFont boldSystemFontOfSize:18.0];

[@"公司:北京中软科技股份有限公司\n部门:ERP事业部\n姓名:McLiang" drawInRect:CGRectMake(20, 40, 280, 300) withFont:font];

*/

/*NO.3画一个正方形图形 没有边框

CGContextSetRGBFillColor(context, 0, 0.25, 0, 0.5);

CGContextFillRect(context, CGRectMake(2, 2, 270, 270));

CGContextStrokePath(context);

*/

/*NO.4画正方形边框

CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 0.5);//线条颜色

CGContextSetLineWidth(context, 2.0);

CGContextAddRect(context, CGRectMake(2, 2, 270, 270));

CGContextStrokePath(context);

*/

/*NO.5画方形背景颜色

CGContextTranslateCTM(context, 0.0f, self.bounds.size.height);

CGContextScaleCTM(context, 1.0f, -1.0f);

UIGraphicsPushContext(context);

CGContextSetLineWidth(context,320);

CGContextSetRGBStrokeColor(context, 250.0/255, 250.0/255, 210.0/255, 1.0);

CGContextStrokeRect(context, CGRectMake(0, 0, 320, 460));

UIGraphicsPopContext();

*/

/*NO.6椭圆

CGRect aRect= CGRectMake(80, 80, 160, 100);

CGContextSetRGBStrokeColor(context, 0.6, 0.9, 0, 1.0);

CGContextSetLineWidth(context, 3.0);

CGContextAddEllipseInRect(context, aRect); //椭圆

CGContextDrawPath(context, kCGPathStroke);

*/

/*NO.7

CGContextBeginPath(context);

CGContextSetRGBStrokeColor(context, 0, 0, 1, 1);

CGContextMoveToPoint(context, 100, 100);

CGContextAddArcToPoint(context, 50, 100, 50, 150, 50);

CGContextStrokePath(context);

*/

/*NO.8渐变

CGContextClip(context);

CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();

CGFloat colors[] =

{

204.0 / 255.0, 224.0 / 255.0, 244.0 / 255.0, 1.00,

29.0 / 255.0, 156.0 / 255.0, 215.0 / 255.0, 1.00,

0.0 / 255.0,  50.0 / 255.0, 126.0 / 255.0, 1.00,

};

CGGradientRef gradient = CGGradientCreateWithColorComponents

(rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));

CGColorSpaceRelease(rgb);

CGContextDrawLinearGradient(context, gradient,CGPointMake

(0.0,0.0) ,CGPointMake(0.0,self.frame.size.height),

kCGGradientDrawsBeforeStartLocation);

*/

/* NO.9四条线画一个正方形

//画线

UIColor *aColor = [UIColor colorWithRed:0 green:1.0 blue:0 alpha:0];

CGContextSetRGBStrokeColor(context, 1.0, 0, 0, 1.0);

CGContextSetFillColorWithColor(context, aColor.CGColor);

CGContextSetLineWidth(context, 4.0);

CGPoint aPoints[5];

aPoints[0] =CGPointMake(60, 60);

aPoints[1] =CGPointMake(260, 60);

aPoints[2] =CGPointMake(260, 300);

aPoints[3] =CGPointMake(60, 300);

aPoints[4] =CGPointMake(60, 60);

CGContextAddLines(context, aPoints, 5);

CGContextDrawPath(context, kCGPathStroke); //开始画线

*/

/*  NO.10

UIColor *aColor = [UIColor colorWithRed:0 green:1.0 blue:0 alpha:0];

CGContextSetRGBStrokeColor(context, 1.0, 0, 0, 1.0);

CGContextSetFillColorWithColor(context, aColor.CGColor);

//椭圆

CGRect aRect= CGRectMake(80, 80, 160, 100);

CGContextSetRGBStrokeColor(context, 0.6, 0.9, 0, 1.0);

CGContextSetLineWidth(context, 3.0);

CGContextSetFillColorWithColor(context, aColor.CGColor);

CGContextAddRect(context, rect); //矩形

CGContextAddEllipseInRect(context, aRect); //椭圆

CGContextDrawPath(context, kCGPathStroke);

*/

/*  NO.11

画一个实心的圆

CGContextFillEllipseInRect(context, CGRectMake(95, 95, 100.0, 100));

*/

/*NO.12

画一个菱形

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGContextMoveToPoint(context, 100, 100);

CGContextAddLineToPoint(context, 150, 150);

CGContextAddLineToPoint(context, 100, 200);

CGContextAddLineToPoint(context, 50, 150);

CGContextAddLineToPoint(context, 100, 100);

CGContextStrokePath(context);

*/

/*NO.13 画矩形

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGRect rectangle = CGRectMake(60,170,200,80);

CGContextAddRect(context, rectangle);

CGContextStrokePath(context);

*/

/*椭圆

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGRect rectangle = CGRectMake(60,170,200,80);

CGContextAddEllipseInRect(context, rectangle);

CGContextStrokePath(context);

*/

/*用红色填充了一段路径:

CGContextMoveToPoint(context, 100, 100);

CGContextAddLineToPoint(context, 150, 150);

CGContextAddLineToPoint(context, 100, 200);

CGContextAddLineToPoint(context, 50, 150);

CGContextAddLineToPoint(context, 100, 100);

CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);

CGContextFillPath(context);

*/

/*填充一个蓝色边的红色矩形

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGRect rectangle = CGRectMake(60,170,200,80);

CGContextAddRect(context, rectangle);

CGContextStrokePath(context);

CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);

CGContextFillRect(context, rectangle);

*/

/*画弧

//弧线的是通过指定两个切点,还有角度,调用CGContextAddArcToPoint()绘制

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGContextMoveToPoint(context, 100, 100);

CGContextAddArcToPoint(context, 100,200, 300,200, 100);

CGContextStrokePath(context);

*/

/*

绘制贝兹曲线

//贝兹曲线是通过移动一个起始点,然后通过两个控制点,还有一个中止点,调用CGContextAddCurveToPoint() 函数绘制

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGContextMoveToPoint(context, 10, 10);

CGContextAddCurveToPoint(context, 0, 50, 300, 250, 300, 400);

CGContextStrokePath(context);

*/

/*绘制二次贝兹曲线

CGContextSetLineWidth(context, 2.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGContextMoveToPoint(context, 10, 200);

CGContextAddQuadCurveToPoint(context, 150, 10, 300, 200);

CGContextStrokePath(context);

*/

/*绘制虚线

CGContextSetLineWidth(context, 5.0);

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

CGFloat dashArray[] = {2,6,4,2};

CGContextSetLineDash(context, 3, dashArray, 4);//跳过3个再画虚线,所以刚开始有6-(3-2)=5个虚点

CGContextMoveToPoint(context, 10, 200);

CGContextAddQuadCurveToPoint(context, 150, 10, 300, 200);

CGContextStrokePath(context);

*/

/*绘制图片

NSString* imagePath = [[NSBundle mainBundle] pathForResource:@"dog" ofType:@"png"];

UIImage* myImageObj = [[UIImage alloc] initWithContentsOfFile:imagePath];

//[myImageObj drawAtPoint:CGPointMake(0, 0)];

[myImageObj drawInRect:CGRectMake(0, 0, 320, 480)];

NSString *s = @"我的小狗";

[s drawAtPoint:CGPointMake(100, 0) withFont:[UIFont systemFontOfSize:34.0]];

*/

/*

NSString *path = [[NSBundle mainBundle] pathForResource:@"dog" ofType:@"png"];

UIImage *img = [UIImage imageWithContentsOfFile:path];

CGImageRef image = img.CGImage;

CGContextSaveGState(context);

CGRect touchRect = CGRectMake(0, 0, img.size.width, img.size.height);

CGContextDrawImage(context, touchRect, image);

CGContextRestoreGState(context);

*/

/*NSString *path = [[NSBundle mainBundle] pathForResource:@"dog" ofType:@"png"];

UIImage *img = [UIImage imageWithContentsOfFile:path];

CGImageRef image = img.CGImage;

CGContextSaveGState(context);

CGContextRotateCTM(context, M_PI);

CGContextTranslateCTM(context, -img.size.width, -img.size.height);

CGRect touchRect = CGRectMake(0, 0, img.size.width, img.size.height);

CGContextDrawImage(context, touchRect, image);

CGContextRestoreGState(context);*/

/*

NSString *path = [[NSBundle mainBundle] pathForResource:@"dog" ofType:@"png"];

UIImage *img = [UIImage imageWithContentsOfFile:path];

CGImageRef image = img.CGImage;

CGContextSaveGState(context);

CGAffineTransform myAffine = CGAffineTransformMakeRotation(M_PI);

myAffine = CGAffineTransformTranslate(myAffine, -img.size.width, -img.size.height);

CGContextConcatCTM(context, myAffine);

CGContextRotateCTM(context, M_PI);

CGContextTranslateCTM(context, -img.size.width, -img.size.height);

CGRect touchRect = CGRectMake(0, 0, img.size.width, img.size.height);

CGContextDrawImage(context, touchRect, image);

CGContextRestoreGState(context);

*/

}

拷贝别人的drawRect绘图分类用途、用法很全。的更多相关文章

  1. WPF中DataGrid中的DataGridCheckBoxColumn用法(全选,全否,反选)

    原文:WPF中DataGrid中的DataGridCheckBoxColumn用法(全选,全否,反选) 前台代码 <DataGrid.Columns> <DataGridCheckB ...

  2. javascript的canvas绘图的基本用法

    <canvas>是HTML里面非常强大的元素,利用它结合js可以实现很多动画效果,大大增强交互性.下面,我想用图文并茂的方式阐述一下canvas的绘图机制的基础内容,话不多说,先上代码: ...

  3. Linux 下 Shell 命令的分类及用法

    当你打算真正操纵好你的 Linux 系统,没有什么能比命令行界面更让你做到这一点.为了成为一个 Linux 高手,你必须能够理解 Shell命令的不同类型,并且会在终端下正确的使用它们. 在 Linu ...

  4. C语言——常用标准输入输出函数 scanf(), printf(), gets(), puts(), getchar(), putchar(); 字符串拷贝函数 strcpy(), strncpy(), strchr(), strstr()函数用法特点

    1 首先介绍几个常用到的转义符 (1)     换行符“\n”, ASCII值为10: (2)     回车符“\r”, ASCII值为13: (3)     水平制表符“\t”, ASCII值为 9 ...

  5. MVC Controller return 格式分类及用法

    概述 所看到的Action都是return View();我们可以看作这个返回值用于解析一个aspx文件.而它的返回类型是ActionResult如 public ActionResult Index ...

  6. Java中修饰符的分类及用法

    访问权限修饰符: public 修饰class,方法,变量: 所修饰类的名字必须与文件名相同,文件中最多能有一个pulic修饰的类. private class不可用,方法,变量可以用: 只限于本类成 ...

  7. Font Awesome字体图标的 用法, 很简单

    http://fontawesome.dashgame.com/ 上面是 官网,  可下载,也可以CDN. 1...  加载 2...  用法

  8. qt5信息提示框QMessageBox用法(很全)

    information QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes ...

  9. C++ 拷贝构造函数与赋值函数的区别(很严谨和全面)

    这里我们用类String 来介绍这两个函数: 拷贝构造函数是一种特殊构造函数,具有单个形参,该形参(常用const修饰)是对该类类型的引用.当定义一个新对象并用一个同类型的对象对它进行初始化时,将显式 ...

随机推荐

  1. 关于SVN浏览服务器的错误

    这种错误是因为URL错误,需要把https://iZ1gyqtig7Z/svn/BoLeBang/   换成自己的公网ip地址 https://xx.xx.xx.xxsvn/BoLeBang/ 就可以 ...

  2. 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错

    如题 报错提示: 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错.字符串的长度超过了为 maxJsonLength 属性设置的值.","Sta ...

  3. mongodb高版本与低版本的区别

    mongodb高版本与低版本的区别 一.mongodb引擎: Mongodb 3.0支持用户自定义存储引擎,用户可配置使用mmapv1或者wiredTiger存储引擎. 3.2版本以后默认的开启的是w ...

  4. mysql 命令备份还原

    备份 mysqldump -h localhost -uroot -p123456 springbootdb > e:/springbootdb.sql 还原 mysql -h localhos ...

  5. “全栈2019”Java第九章:解释第一个程序

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. “全栈2019”Java第四十四章:继承

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. this指向的一个小总结

    凡是在函数内部调用的函数的this的指向都是window 定时器,延时器this的指向都是window 在事件中一般情况下this的指向都指向当前的DOM对象 在对象函数中this的指向一般情况下都指 ...

  8. svn 冲突Skipped ‘inm/inm/templates‘ -- Node remains in conflict

    svn在删除后,提交,更新操作后可能会报, svn update inm/inm -r 1586 Updating ‘inm/inm‘: Password: Skipped ‘inm/inm/temp ...

  9. 【随记】SQL备份一张表的数据

    SQL Server: SELECT  *  INTO  table_bak   FROM   table Oracle.MySQL.SQLite: CREATE TABLE table_bak AS ...

  10. java类的基本结构

    对象依赖于类存在. 分析过程先有对象后有类,开发过程中先有类后有对象. new是为新建对象开辟内存空间的运算符:以类为模板,开辟空间实例化一个对象,并返回该对象的一个引用. 成员变量 直接在类中定义 ...