拷贝被人的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. duilib入门简明教程 -- 界面设计器 DuiDesigner (10)

       上一个教程讲解了怎么布局最大化.最小化.关闭按钮,但是如果手动去计算这三个按钮的位置和大小的话,非常的不直观,也很不方便.     所以这一章准备介绍duilib的UI设计器,由于这个设计器很不 ...

  2. Filter 设计模式编码实践

    原文地址: haifeiWu和他朋友们的博客 博客地址:www.hchstudio.cn 欢迎转载,转载请注明作者及出处,谢谢! 最近项目中遇到各种输出数据监控,数据校验等逻辑,一个个实现很是麻烦.项 ...

  3. “全栈2019”Java第五十六章:多态与字段详解

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

  4. How to Mount a Remote Folder using SSH on Ubuntu

    Connecting to a server across the internet is much more secure using SSH. There is a way that you ca ...

  5. kali linux之msf信息收集

    nmap扫描 Auxiliary 扫描模块 目前有557个扫描方式

  6. JavaScript 实现用户点击图片放大

    JavaScript 实现用户点击图片放大 一.契机 情况是这样的,之前推荐朋友去建站.后面他专门写了一篇文章说如何实现 "用户点击图片实现放大效果",俺就好好 "拜读& ...

  7. Python3学习札记

    1.- (按位取反) x的按位取反结果为-(x+1)   e.g. -5输出-6 更多细节,阅:http://stackoverflow.com/a/11810203 2.DocString约定 为一 ...

  8. 2016级算法第五次上机-A.Beihang Collegiate Pronunciation Contest 2017

    1065 Beihang Collegiate Pronunciation Contest 2017 思路 在字符串中不断做匹配 找到一个匹配就输出 时间复杂度\(O(n)\) ps.模式串是定长的, ...

  9. GitHub访问下载太慢解决办法

    原因 为什么慢?github的CDN被某墙屏了. 解决方法 绕过dns解析,在本地直接绑定host,该方法也可加速其他因为CDN被屏蔽导致访问慢的网站. 实现 在本地host文件中添加映射,步骤如下: ...

  10. PHP用curl远程下载图片

    function http_get_data($url){ $ch = curl_init (); curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'GET' ); ...