iOS开发CGContextRef画图怎么使用
发表于:2024-09-29 作者:千家信息网编辑
千家信息网最后更新 2024年09月29日,这篇"iOS开发CGContextRef画图怎么使用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一
千家信息网最后更新 2024年09月29日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安全错误
数据库的锁怎样保障安全
全球互联网科技专利
何为网络安全自渗透工具
有什么蛋白质数据库
青年关注网络安全宣传
Dayz服务器联机管理工具
上海交友软件开发收费报价表
中毒后浏览器代理服务器没反应
区块系统软件开发
网络安全科普问答题
国家负责统筹和协调网络安全工作
阿里应用自动化数据库
福建综合软件开发批发价格
数据库主属性是啥
mpp数据库密码修改
泗阳网络安全知识竞赛
域名备案和服务器哪个好
网络安全的防护范围是什么
扬州网络技术服务包括什么
速达数据库已满
金蝶服务器数据库怎么搭建
数据库属于系统软件吗
网络安全程序数据分析处理
银行数据库设计jsp
软件开发私活微信
福建网络卫星授时服务器云空间
软件开发岗位职责kpi
数据库横向扩张好吗
东营软件开发培训班
预防沉迷网络安全常识
网络安全市场宏观分析