绘制饼图
* 找规律 -> 得出startA,endA,angle的结论
* startA = endA angle = 比例 * 总度数360°
* endA = startA + angle
* angle = 自己 / 100.0 * 360
* 一个一个扇形画
*
- (void)drawRect:(CGRect)rect{
NSArray *data = @[@25,@25,@50];
// 1.获取上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 2.拼接路径
CGPoint center = CGPointMake(125, 125);
CGFloat radius = 120;
CGFloat startA = 0;
CGFloat angle = 0;
CGFloat endA = 0;
for (NSNumber *number in data) {
// 2.拼接路径
startA = endA;
angle = number.intValue / 100.0 * M_PI * 2;
endA = startA + angle;
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startA endAngle:endA clockwise:YES];
[path addLineToPoint:center];
[[UIColor randomColor] set];
// 把路径添加上下文
CGContextAddPath(ctx, path.CGPath);
// 渲染
CGContextFillPath(ctx);
}
}
- (void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event{
CGFloat a = arc4random_uniform(6);
//CGFloat a = arc4random()%6;
NSLog(@”随机数–%f”,a);
[self setNeedsDisplay];
}
//另创建一个类 封装方法
+ (UIColor *)randomColor{
/*
颜色有两种表现形式 RGB RGBA
RGB 24
R,G,B每个颜色通道8位
8的二进制 255
R,G,B每个颜色取值 0 ~255
120 / 255.0
*/
CGFloat r = arc4random_uniform(256) / 255.0;
CGFloat g = arc4random_uniform(256) / 255.0;
CGFloat b = arc4random_uniform(256) / 255.0;
return [UIColor colorWithRed:r green:g blue:b alpha:1];
}