如何使用核心图为饼图设置两个数据标签

时间:2013-10-10 13:35:16

标签: objective-c core-plot

enter image description here

我必须绘制一张类似于此图的饼图。我必须在图像中提到的两行显示数据标签(实际计数和百分比值)我想知道这是否可行使用核心图。我使用下面的委托来获取百分比或实际数量,但不确定如何获得这两个值。任何帮助都将受到高度赞赏。

-(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)index {

if([plot isKindOfClass:[CPTPieChart class]]) {
    static CPTMutableTextStyle *labelText = nil;
    if (!labelText) {
        labelText= [[CPTMutableTextStyle alloc] init];
        labelText.color = [CPTColor blueColor];

    }

    NSDecimalNumber *portfolioSum = [NSDecimalNumber zero];
    for (NSDecimalNumber *price in [[CPDStockPriceStore sharedInstance] dailyPortfolioPrices]) {
        portfolioSum = [portfolioSum decimalNumberByAdding:price];
    }
    NSDecimalNumber *countValue = [[[CPDStockPriceStore sharedInstance] dailyPortfolioPrices] objectAtIndex:index];
    NSString *labelValue = [NSString stringWithFormat:@"%@",countValue];
    CPTTextLayer *textLayer = [[CPTTextLayer alloc]initWithText:labelValue];
    return textLayer;
}
else {

    return nil;
}
}

1 个答案:

答案 0 :(得分:0)

文本图层允许指定属性字符串。试试这个并在需要的地方添加\ n。您还可以为字符串中的不同部分应用不同的样式(与通常的属性字符串一样)。实际上,即使是简单的NSString也可以将标签分成2行。只需在需要的地方添加\ n。