iOS开发CGContextRef画图怎么使用
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇"iOS开发CGContextRef画图怎么使用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一
千家信息网最后更新 2025年11月08日iOS开发CGContextRef画图怎么使用
这篇"iOS开发CGContextRef画图怎么使用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"iOS开发CGContextRef画图怎么使用"文章吧。
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);//使用这个使图片上下颠倒了 //CGContextDrawTiledImage(context, CGRectMake(0, 0, 20, 20), image.CGImage);//平铺图
以上就是关于"iOS开发CGContextRef画图怎么使用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
坐标
终点
起点
内容
图片
虚线
颜色
方向
曲线
贝塞
贝塞尔
开发
图形
控制点
直线
控制
三角形
圆弧
圆心
圆角
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
新西兰网络技术
二三十台服务器隔离2m辐射大吗
mc服务器梦世界地址
河南省食蚁兽网络技术
工程类软件开发有前途吗
lol服务器怎么选楼
小学生网络安全要牢记
沉浸服务器散热
软件开发公司使用盗版vs
数据库有两种身份验证模式分别是
软件开发包括卖软件吗
网络安全法解读ppt 下载
mysql数据库购买
全国31省最新疫情通报数据库
远洋网络安全基地
2022学校网络安全工作计划
excel中含有数据库
公安行业网络安全案例
数据库 笔试题
慕课网络安全答案
荣耀新三国服务器区别
怎么在数据库中新建存储过程
软件开发能力强的公司
求生之路弑神巅峰趣味服务器
米家数据库无法搜雷士照明
为何收缩数据库那么慢
新乡软件开发销售公司
怎么把华为服务器的raid清除
网络安全大赛比赛的顺序
昆明南瑞网络安全隔离装置