IOS(UI)_CGContextRef(绘画)
2016-03-02 11:45
471 查看
绘画
一般创建UIView时都要一个drawRect在下面被注释掉现在把注释去掉
//覆盖drawRect方法,可以在此自定绘画 和 动画 - (void)drawRect:(CGRect)rect { }
绘画
//覆盖drawRect方法,可以在此自定绘画 和 动画 - (void)drawRect:(CGRect)rect { //一个不透明的Quartz 2D绘画环境,相当于一个画布,可以在上面任意绘画 CGContextRef context = UIGraphicsGetCurrentContext(); //设置画笔粗细 CGContextSetLineWidth(context, 1); //设置画笔的颜色 CGContextSetRGBStrokeColor(context, 1, 1, 1, 1); //设置填充颜色 CGContextSetRGBFillColor(context, 1, 0, 0, 1); //画圆 CGContextAddArc(context, 100, 20, 15, 0, 2*M_PI, 0); //绘制路径 CGContextDrawPath(context, kCGPathStroke); //填充圆,无边框 CGContextAddArc(context, 150, 20, 15, 0, 2*M_PI, 1); //绘制路径 /* <#CGPathDrawingMode mode#> kCGPathFill, //填充非绕数规则 kCGPathEOFill, //表示用奇偶规则 kCGPathStroke, //路径 kCGPathFillStroke, //路径填充 kCGPathEOFillStroke //表示描线 */ CGContextDrawPath(context, kCGPathFillStroke); //画线及弧线 CGContextMoveToPoint(context, 100, 80); //移到开始坐标 CGContextAddLineToPoint(context, 130, 80); CGContextDrawPath(context, kCGPathStroke); //画笑脸 //左边 CGContextMoveToPoint(context, 140, 80); //开始坐标p1 CGContextAddArcToPoint(context, 148, 68, 156, 80, 10); CGContextStrokePath(context); //右边 CGContextMoveToPoint(context, 160, 80); CGContextAddArcToPoint(context, 168, 68, 176, 80, 10); CGContextStrokePath(context); //画矩形 CGContextStrokeRect(context, CGRectMake(100, 120, 10, 10)); CGContextFillRect(context, CGRectMake(120, 120, 10, 10)); //矩形并填充 CGContextSetLineWidth(context, 2); CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor); //设置填充颜色 CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:34/255.0 green:199/255.0 blue:1 alpha:1].CGColor); //线框颜色 //画方框 CGContextAddRect(context, CGRectMake(140, 120, 60, 30)); CGContextDrawPath(context, kCGPathFillStroke); //画扇形 //以10为半径围绕圆心指定角度扇形 CGContextMoveToPoint(context, 160, 180); CGContextAddArc(context, 160, 180, 10, 0, M_PI/2, 1); CGContextClosePath(context); CGContextDrawPath(context, kCGPathFillStroke); //画椭圆 CGContextAddEllipseInRect(context, CGRectMake(200, 180, 60, 15)); CGContextDrawPath(context, kCGPathFillStroke); //画贝塞尔曲线 //二次曲线 CGContextMoveToPoint(context, 120, 300); CGContextAddQuadCurveToPoint(context, 190, 310, 120, 390); //设置贝塞尔曲线的控制点坐标和终点坐标 CGContextStrokePath(context); //三次曲线 CGContextMoveToPoint(context, 200, 300); CGContextAddCurveToPoint(context, 250, 280, 250, 400, 280, 300); CGContextStrokePath(context); //图片 UIImage *image = [UIImage imageNamed:@"xx1.jpg"]; [image drawInRect:CGRectMake(60, 400, 200, 200)]; //iOS7.0新加的API NSString *text = @"Rick"; [text drawAtPoint:CGPointMake(100, 100) withAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:18],NSForegroundColorAttributeName:[UIColor whiteColor]}]; }
相关文章推荐
- 解决 类似 sdk\build-tools\23.0.1\aapt.exe'' finished with non-zero exit value 1 这种问题
- require.js学习笔记2
- EasyUI
- markedTextRange理解及使用 计算长度
- GetItemValueFromIniFile
- 猫猫学iOS之UIButton一行代码重写图片和标题位置
- IOS(UI)_手势1
- leetcode--Implement Stack using Queues
- Java中的Collection和Map(五)--PriorityQueue
- Error using subsindex Function 'subsindex' is not defined for values of class 'struct'.
- QtGui继承关系树
- EasyUI基础知识
- UITableView四周有多余的空白区域
- 一个奇怪的子线程更新UI问题
- require.js 模态框上利用defind加载js
- ueditor上传图片是提示找不到临时文件,怎么解?
- 系统简单的UIImagePickerController
- Android Gradle Build Error:Some file crunching failed, see logs for details解决办法
- Building QT projects from the command line
- SVN:Errors running builder 'DeploymentBuilder' on project---谷营中西软件科技园