博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS绘圆形图-CGContextAddArc各参数说明
阅读量:6251 次
发布时间:2019-06-22

本文共 2140 字,大约阅读时间需要 7 分钟。

hot3.png

1.使用 UIGraphicsGetCurrentContext() 画圆

    CGContextAddArc(<#CGContextRef  _Nullable c#>, <#CGFloat x#>, <#CGFloat y#>, <#CGFloat radius#>, <#CGFloat startAngle#>, <#CGFloat endAngle#>, <#int clockwise#>)

x,y为圆点坐标,radius半径,startAngle为开始的弧度,endAngle为 结束的弧度,clockwise 0为顺时针,1为逆时针。

-(void)drawRect:(CGRect)rect{    CGFloat lineWidth = 12;    NSInteger sleepScore = arc4random() % 101;    //定义一个不透明类型的Quartz 2D绘画环境,相当于一个画布    CGContextRef context = UIGraphicsGetCurrentContext();    [[UIColor whiteColor] set];    CGContextFillRect(context, rect);    //有值圆    CGFloat scoreLine = sleepScore/100.0;    Log(@"sleepScore %ld %f",sleepScore,scoreLine);    CGContextSetStrokeColorWithColor(context, [UIColor colorWithHexString:@"#48BBAD"].CGColor);    CGContextSetLineWidth(context, lineWidth);    CGContextAddArc(context, rect.size.width/2,rect.size.height, rect.size.width/2-lineWidth/2, -M_PI, -M_PI/4, 0);// 0为顺时针,1为逆时针    CGContextDrawPath(context, kCGPathStroke);    /*写分数*/    CGFloat fontSize = (rect.size.height-lineWidth)*0.7;    CGRect scoreRect = CGRectMake(rect.size.width/2-fontSize, rect.size.height-fontSize, fontSize*2, fontSize);    [self drawTextWithContent:@"100" WithFontSize:fontSize WithWeight:1 withTextColor:[UIColor blackColor] withRect:scoreRect withAlignment:NSTextAlignmentCenter];}-(void)drawTextWithContent:(NSString *)text WithFontSize:(CGFloat)fontSize WithWeight:(CGFloat)weight withTextColor:(UIColor *)textColor withRect:(CGRect)rect withAlignment:(NSTextAlignment)alignment{    //    Log(@"fontSize:%f",fontSize);    NSMutableDictionary *attributesDic = [NSMutableDictionary dictionary];    attributesDic[NSFontAttributeName] = [UIFont systemFontOfSize:fontSize weight:weight];    attributesDic[NSForegroundColorAttributeName] = textColor;    //段落格式    NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];    textStyle.lineBreakMode = NSLineBreakByWordWrapping;    textStyle.alignment = alignment;//对齐方式    attributesDic[NSParagraphStyleAttributeName] = textStyle;    [text drawInRect:rect withAttributes:attributesDic];}

 

转载于:https://my.oschina.net/u/2365397/blog/1583670

你可能感兴趣的文章
bzoj4557
查看>>
C# 实验感悟WPF
查看>>
解决Win7 下小问题
查看>>
day25-3获取指定字符串中,大写字母、小写字母、数字的个数
查看>>
[转载] 百度上传&下载脚本
查看>>
Yii framwork - Url Manager
查看>>
为什么Facebook要将视频从Flash全面迁移到HTML5?
查看>>
poj 1149 PIGS
查看>>
mysql学习笔记--数据库视图
查看>>
SQL server 2005如何设置一个或几个字段唯一约束?
查看>>
典型用户分析
查看>>
java web编程 servlet读取配置文件参数
查看>>
ChartControl实现时间轴实现
查看>>
生成器函数
查看>>
Google(谷歌)中国工程研究院 工程师 方坤 对学生朋友的一些建议
查看>>
oracle 优化——索引与组合索引
查看>>
android基础—尺寸单位和屏幕适配
查看>>
小试 ScriptManager
查看>>
异常处理
查看>>
C/S模型之消息传输
查看>>