Almost half year ago I’ve made this control. For one idea, but then I found that my idea does not good enough to be implemented.
It has just 2 classes VBPieChart, superclass UIView, and VBPiePiece, superclass CAShapeLayer. And really used just VBPieChart. All chart based on CALayer’s and depends to QuartzCore.
Example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
VBPieChart *_chart = [[VBPieChart alloc ] init ];
[self.view addSubview :_chart ];
[_chart setFrame :CGRectMake (10, 50, 300, 300)];
[_chart setEnableStrokeColor :YES];
_chart.length = M_PI;
_chart.startAngle = M_PI;
[_chart.layer setShadowOffset :CGSizeMake (2, 2)];
[_chart.layer setShadowRadius :3];
[_chart.layer setShadowColor :[UIColor blackColor ].CGColor ];
[_chart.layer setShadowOpacity :0.7];
[_chart setHoleRadiusPrecent :0.3];
NSDictionary *chartValues = @ {
@"data one": @ {@"value":@35 },
@"data two": @ {@"value":@20 },
@"data tree": @ {@"value":@10 },
@"first ": @ {@"value":@40 },
@"second": @20,
@"third": @40,
@"fourth": @10,
};
[_chart setChartValues :chartValues animation :YES];
|
chartValues contains items of chart.
1. name of piece
2. dictionary with NSNumber or parameters:
– value actually size of piece
– color, UIColor
– accent, bool value to show this item with shift
VBPieChart has 5 different types of animations.