引言
原文:
https://kunnan.blog.csdn.net/article/details/113043866
I、 饼图
这里写图片描述
代码语言:javascript复制/*pie
寻找规律
*/
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
CGContextRef context = UIGraphicsGetCurrentContext();
NSArray *data = @[@25,@25,@50];
CGPoint center = CGPointMake(125, 125);
CGFloat radious = 100;//半径
CGFloat startAngle = 0;//起始弧度
CGFloat endAngle = 0;
CGFloat angle = 0;
//开始绘制饼图
for (NSNumber *num in data) {
//绘制
angle =num.floatValue/100.0 *M_PI*2;
startAngle = endAngle;//上一个饼图的结束弧度为下一个饼图的开始弧度
endAngle = startAngle angle;
UIBezierPath *path2 = [UIBezierPath bezierPathWithArcCenter:center radius:radious startAngle:startAngle endAngle:endAngle clockwise:YES];
[path2 addLineToPoint:center];
CGContextAddPath(context, path2.CGPath);
[[UIColor randomColor]set];
//渲染第i个
CGContextFillPath(context);
}
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self setNeedsDisplay];
}
//生成随机颜色
(UIColor *)randomColor{
/*
RGB 24位,RGB 每个颜色通道8位,8 的二进制255,即颜色取值是0~255
RGBA
*/
CGFloat red = arc4random_uniform(256)/255.0;
CGFloat blue = arc4random_uniform(256)/255.0;
CGFloat green = arc4random_uniform(256)/255.0;
return [UIColor colorWithRed:red green:green blue:blue alpha:1];
}
II、柱状图
这里写图片描述