danielgindi/Charts饼状图pieChartView用法

来源:互联网 发布:网络正常微博刷新不了 编辑:程序博客网 时间:2024/05/29 12:49

#import "PieChartsView.h"#import "ChartsDemo-Bridging-Header.h"#import "ChartsDemo-swift.h"#define kSelfWidth self.frame.size.width#define kSelfHeight self.frame.size.height@implementation PieChartsView {    PieChartView *_pieChartView;}- (instancetype)initWithFrame:(CGRect)frame {    if (self = [super initWithFrame:frame]) {        [self uiConfig];    }    return self;}- (void)uiConfig {    _pieChartView = [[PieChartView alloc] init];    _pieChartView.backgroundColor = [UIColor cyanColor];    _pieChartView.frame = CGRectMake(0, 0, kSelfWidth, kSelfHeight);    _pieChartView.holeRadiusPercent = 0.4; // 中间空心半径比    _pieChartView.transparentCircleRadiusPercent = 0;    _pieChartView.chartDescription.enabled = NO;    [_pieChartView setExtraOffsetsWithLeft:5.f top:10.f right:5.f bottom:5.f];        ChartLegend *l = _pieChartView.legend;    l.horizontalAlignment = ChartLegendHorizontalAlignmentRight;    l.verticalAlignment = ChartLegendVerticalAlignmentTop;    l.orientation = ChartLegendOrientationVertical;    l.formSize = 10;    l.font = [UIFont systemFontOfSize:10];    [self addSubview:_pieChartView];        // 开始设值    NSDictionary *statistics = @{                                 @"初步接洽":[NSNumber numberWithLong:27],                                 @"需求确定":[NSNumber numberWithLong:11],                                 @"方案报价":[NSNumber numberWithLong:8],                                 @"谈判审核":[NSNumber numberWithLong:3],                                 };    NSMutableArray *values = [NSMutableArray array];        //累加总数, 为了算百分比    double total = 0;    for (NSNumber *num in statistics.allValues) {        total += [num doubleValue];    }        // 循环字典数组 创建data    for (NSString *str in statistics.allKeys) {        NSNumber *value = statistics[str];        if ([value intValue] != 0) {            [values addObject:[[PieChartDataEntry alloc] initWithValue:[value doubleValue]/total*100 label:str]];        }    }        // 循环data数组 创建Set    if (values.count > 0) {        PieChartDataSet *dataSet = [[PieChartDataSet alloc] initWithValues:values label:@""];        dataSet.sliceSpace = 2.0;                //设置饼块颜色数组        dataSet.colors = @[[UIColor blueColor], [UIColor brownColor], [UIColor redColor], [UIColor orangeColor]];                PieChartData *data = [[PieChartData alloc] initWithDataSet:dataSet];                NSNumberFormatter *pFormatter = [[NSNumberFormatter alloc] init];        pFormatter.numberStyle = NSNumberFormatterPercentStyle;        pFormatter.maximumFractionDigits = 1;        pFormatter.multiplier = @1.f;        [data setValueFormatter:[[ChartDefaultValueFormatter alloc] initWithFormatter:pFormatter]];        [data setValueFont:[UIFont systemFontOfSize:8]];        [data setValueTextColor:UIColor.whiteColor];                _pieChartView.data = data;        [_pieChartView highlightValues:nil];    }}@end

Demo下载地址: http://download.csdn.NET/detail/margaret_mo/9720571




0 0