Core-Plot选择一个点

时间:2015-02-02 03:23:20

标签: ios objective-c charts core-plot

我已经成功选择了一个点,但是我希望在这一点上选中时,将颜色点设置为与其他点不同来区分,如何实现,非常感谢

如何只用红色设置这个。

How to set up only this one in red

- (void)scatterPlot:(CPTScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex:(NSUInteger)index {     CPTXYGraph graph =(CPTXYGraph )_ graph;

if ( _symbolTextAnnotation ){
    [graph.plotAreaFrame.plotArea removeAnnotation:_symbolTextAnnotation];
    _symbolTextAnnotation = nil;
}

// Setup a style for the annotation
CPTMutableTextStyle *hitAnnotationTextStyle = [CPTMutableTextStyle textStyle];
hitAnnotationTextStyle.color    = [CPTColor whiteColor];
hitAnnotationTextStyle.fontSize = 16.0;
hitAnnotationTextStyle.fontName = @"Helvetica-Bold";

// Determine point of symbol in plot coordinates
NSDictionary *dataPoint = _plotData[index];

NSNumber *x = dataPoint[@"x"];
NSNumber *y = dataPoint[@"y"];

NSArray *anchorPoint = @[x, y];

float yValue = [y floatValue];

NSString *yString = [NSString stringWithFormat:@"%.1f",yValue];

CPTTextLayer *textLayer = [[CPTTextLayer alloc] initWithText:yString style:hitAnnotationTextStyle];
CPTImage *background    = [CPTImage imageWithCGImage:[UIImage imageNamed:@"bg_red"].CGImage];
textLayer.fill          = [CPTFill fillWithImage:background];
textLayer.paddingLeft   = 2.0;
textLayer.paddingTop    = 2.0;
textLayer.paddingRight  = 2.0;
textLayer.paddingBottom = 2.0;

self.symbolTextAnnotation                    = [[CPTPlotSpaceAnnotation alloc] initWithPlotSpace:graph.defaultPlotSpace anchorPlotPoint:anchorPoint];
_symbolTextAnnotation.contentLayer       = textLayer;
_symbolTextAnnotation.contentAnchorPoint = CGPointMake(0.5, 0.0);
_symbolTextAnnotation.displacement       = CGPointMake(0.0, 10.0);
[graph.plotAreaFrame.plotArea addAnnotation:_symbolTextAnnotation];

}

1 个答案:

答案 0 :(得分:1)

实施-symbolForScatterPlot:recordIndex:数据源方法。返回nil以使用默认plotSymbol[NSNull null]显示无符号,或CPTPlotSymbol以在给定数据索引处显示该符号。