核心情节:带有文字和图像的注释

时间:2014-10-06 21:59:55

标签: objective-c annotations core-plot

我想在我的图表中添加一个注释,由文本和图像组成:

enter image description here

我已经可以显示文字(图片中的“13”),但我无法在文字下面添加图片。 我已尝试使用CPTLayer,CPTBorderedLayer,......,但不是按预期工作。

以下是我用来显示文字的代码:

    NSNumber *valueToDisplay = [NSNumber numberWithInt:13];
    NSString *valueToDisplayString = [formatter stringFromNumber:valueToDisplay];
    CPTTextLayer *textLayer = [[CPTTextLayer alloc] initWithText:valueToDisplayString style:style];
    self.priceAnnotation.contentLayer = textLayer;
    self.priceAnnotation.anchorPlotPoint = [NSArray arrayWithObjects:[NSNumber numberWithFloat:7.0], [NSNumber numberWithFloat:14.0], nil];
    [self.graph.plotAreaFrame.plotArea addAnnotation:self.priceAnnotation];

如何在图片下方添加图片?

这是我尝试过的代码之一:

 CPTBorderedLayer *immagine = [[CPTBorderedLayer alloc] initWithFrame:CGRectMake(0, 0, 77, 36)];
 CPTFill *fillImage = [CPTFill fillWithImage:[CPTImage imageWithCGImage:[[UIImage imageNamed:@"sfondoStima.png"] CGImage]]];
        immagine.fill = fillImage;
 self.imageAnnotation.contentLayer = immagine;
 self.imageAnnotation.anchorPlotPoint = [NSArray arrayWithObjects:[NSNumber numberWithFloat:7.0], [NSNumber numberWithFloat:5.0], nil];
 [self.graph.plotAreaFrame.plotArea addAnnotation:self.imageAnnotation];

但这就是结果:位图(77x36)由于某种原因比应该的大得多:

enter image description here

请给我一些帮助......我已经尝试了不同的教程/示例我发现但是它们似乎都没有用。

谢谢, 的Corrado

1 个答案:

答案 0 :(得分:1)

CPTTextLayerCPTBorderedLayer的子类。对于像这样的简单背景,我根本不会想象图像。我尝试这样的事情(未经测试):

CPTMutableLineStyle lineStyle = [CPTMutableLineStyle lineStyle];
lineStyle.lineWidth = 2.0;
lineStyle.lineColor = [CPTColor whiteColor];

CPTTextLayer *textLayer = [[CPTTextLayer alloc] initWithText:valueToDisplayString style:style];
textLayer.fill = [CPTFill fillWithColor:[CPTColor blueColor]];
textLayer.cornerRadius = 10.0;
textLayer.borderLineStyle = lineStyle;

textLayer上设置填充以控制边框线和文本之间的空间。

如果您有更复杂的需求需要图像,请务必正确设置图像比例。 [CPTImage imageNamed:]为您做到这一点。