有朋友问我这个问题怎么解决,我就花了点时间写了一下。
先说说思路,思路是通过贝兹路径画圆弧,并在圆弧的路径上链接一根线到圆心。
路径颜色渲染模式为Fill填充模式,随后花三个圆弧。
第一个圆弧从0° 开始,结束弧度为360° / 3 * 1
第二个圆弧从第一个圆弧结束位置开始,结束弧度为第一个圆弧的结束弧度加上360° / 3 * 1
第三个圆弧同第二个圆弧。
以下是代码:
在View的drawRect方法里调用此方法
分别传入参数1,2,3
圆弧颜色为随机色
-(void)drawNum:(int)num{
//起点位置
CGFloat startAngle = - M_PI_2+M_PI * 2 / 3 *(num-1);
//设置随机颜色
UIColor *color = [UIColor colorWithRed:((float)arc4random_uniform(256)/255.0) green:((float)arc4random_uniform(256)/255.0) blue:((float)arc4random_uniform(256)/255.0) alpha:1.0];
[color set];
//结束位置
CGFloat endAngle = M_PI * 2/3 + startAngle;
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(100, 100) radius:100 startAngle:startAngle endAngle:endAngle clockwise:1];
//画一根到 圆心的线
[path addLineToPoint:CGPointMake(100, 100)];
//渲染
[path fill];
}