iOS开发 CGContextRef画图使用
来源:互联网 发布:五金淘宝店铺表示 编辑:程序博客网 时间:2024/06/05 21:52
1.创建画布
CGContextRef ctx = UIGraphicsGetCurrentContext();
2.设置属性
//旋转,注意:设置操作必须要在添加图形之前,如果设置在添加图形之后的话,此时它已经画完了,无效//旋转的时候,是整个layer都旋转了//旋转45度CGContextRotateCTM(ctx, M_PI_4);//缩放:x方向缩放0.5倍,y方向缩放1.5倍CGContextScaleCTM(ctx, 0.5, 1.5);//平移:x方向移动50,y方向移动100CGContextTranslateCTM(ctx, 50, 100);CGContextSetLineJoin(ctx, kCGLineJoinRound);//线条宽度CGContextSetLineWidth(ctx, 1.0);//起点和终点圆角CGContextSetLineCap(ctx, kCGLineCapRound);//转角圆角CGContextSetLineJoin(ctx, kCGLineJoinRound);//透明度CGContextSetAlpha(ctx, 0.5)
3.画直线
//起点CGContextMoveToPoint(ctx, 10.0, 100.0);//终点CGContextAddLineToPoint(ctx, self.frame.size.width-20.0, 100.0);//颜色 两种设置颜色的方式都可以//CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1.0);[[UIColor redColor] set];//渲染,直线只能绘制空心的,不能调用CGContextFillPath(ctx)// 或者使用这个方法:CGContextDrawPath(ctx, kCGPathStroke);CGContextStrokePath(ctx);
或者使用下面方法画直线
CGPoint point[2];//坐标点 point[0] = CGPointMake(10.0, 100.0);//起点 point[1] = CGPointMake(self.frame.size.width-20.0, 100.0);//终点 //points[]坐标数组,和count大小 CGContextAddLines(context, aPoints, 2);//添加线 CGContextDrawPath(context, kCGPathStroke);
4.画虚线
//设置虚线颜色CGContextSetStrokeColorWithColor(ctx, [UIColor redColor].CGColor);//设置虚线绘制起点CGContextMoveToPoint(ctx, 10.0, 50.0);//设置虚线绘制终点CGContextAddLineToPoint(ctx, self.frame.size.width-20.0, 50.0);//设置虚线排列的宽度间隔:下面的arr中的数字表示先绘制3个点再绘制1个点CGFloat arr[] = {3, 2};//下面最后一个参数“2”代表排列的个数。CGContextSetLineDash(ctx, 0, arr, 2);CGContextDrawPath(ctx, kCGPathStroke);
5.画三角形
//起点CGContextMoveToPoint(ctx, self.center.x, 200.0);//拐点1CGContextAddLineToPoint(ctx, self.center.x-50.0, 250.0);//终点CGContextAddLineToPoint(ctx, self.center.x+50.0, 250.0);//颜色 两种设置颜色的方式都可以//CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1.0);[[UIColor redColor] set];//合并三角形CGContextClosePath(ctx);CGContextFillPath(ctx);
6.画矩形
CGRect rectangle = CGRectMake(10.0, 300.0, self.frame.size.width-20.0, 60.0);CGContextAddRect(ctx, rectangle);CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);CGContextFillPath(ctx);
7.画圆
/**c 当前图形x 圆心坐标xy 圆心坐标yradius 半径startAngle 弧的起点与正X轴的夹角endAngle 弧的终点与正X轴的夹角clockwise 指定0创建一个顺时针的圆弧,或是指定1创建一个逆时针圆弧*/CGContextAddArc(ctx, self.center.x, 100.0, 75.0, 0.0, M_PI+0.5, 0);CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);CGContextFillPath(ctx);
8.画椭圆
CGContextAddEllipseInRect(ctx, CGRectMake(x, y, 100.0, 60.0));CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);CGContextFillPath(ctx);
9.画扇形
CGContextMoveToPoint(ctx, x, y);CGContextAddArc(ctx, x, y, 75.0, 0.0, M_PI+0.5, 0);CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);CGContextSetStrokeColorWithColor(ctx, [UIColor blueColor].CGColor);CGContextDrawPath(ctx, kCGPathFillStroke);
10.画二次贝塞尔曲线
CGContextMoveToPoint(context, 120, 300);//设置Path的起点 CGContextAddQuadCurveToPoint(context,190, 310, 120, 390);//设置贝塞尔曲线的控制点坐标和终点坐标 CGContextStrokePath(context);
11.画三次贝塞尔曲线
CGContextMoveToPoint(context, 200, 300);//设置Path的起点 CGContextAddCurveToPoint(context,250, 280, 250, 400, 280, 300);//设置贝塞尔曲线的控制点坐标和控制点坐标终点坐标 CGContextStrokePath(context);
12.画文字
// 设置文字的属性NSMutableDictionary *dict = [NSMutableDictionary dictionary];dict[NSForegroundColorAttributeName] = [UIColor whiteColor];dict[NSFontAttributeName] = [UIFont systemFontOfSize:14];[@"I Love iOS" drawInRect:rect withAttributes:dict];
13.画图片
UIImage *image = [UIImage imageNamed:@"apple.jpg"]; [image drawInRect:CGRectMake(60, 340, 20, 20)];//在坐标中画出图片 //[image drawAtPoint:CGPointMake(100, 340)];//保持图片大小在point点开始画图片,可以把注释去掉看看 CGContextDrawImage(context, CGRectMake(100, 340, 20, 20), image.CGImage);//使用这个使图片上下颠倒了,参考http://blog.csdn.net/koupoo/article/details/8670024 //CGContextDrawTiledImage(context, CGRectMake(0, 0, 20, 20), image.CGImage);//平铺图
阅读全文
0 0
- ios开发使用CGContextRef画图
- iOS开发 CGContextRef画图使用
- ios-使用CGContextRef重写drawrect画图
- IOS CGContextRef画图小结
- iOS CGContextRef画图小结
- iOS CGContextRef画图小结
- iOS CGContextRef画图小结
- iOS CGContextRef画图小结
- iOS CGContextRef画图小结
- iOS CGContextRef画图小结
- iOS用CGContextRef画图
- iOS用CGContextRef画图
- IOS CGContextRef 画图时的常用方法
- iOS知识点总结—— CGContextRef画图
- iOS画图的一些笔记CGContextRef
- CGContextRef画图
- CGContextRef画图
- iOS CGContextRef的使用
- laravel定时任务怎么写
- 8.27 题解
- Codechef Aug2017 #Walks on the binary tree -- 主席树+Hash
- js转换Date日期格式
- sys.stdout.flush()
- iOS开发 CGContextRef画图使用
- 第一个Java程序,输出“HelloWorld”。
- Iterator之remove情况分析之一报错原因
- 视频内容谁来保护?阿里云视频加密技术大揭秘,打造云上视频安全体系
- 判断是否是相同二叉树&&判断是否是对称树
- What is JSON Wire Protocol?
- xutils3图片加载详解
- 安装ffmpeg
- 广州本爱信息科技有限公司是骗子吗?真相揭秘