我正在尝试使用类方法在 Core Plot (iOS) 上制作自定义绘图符号:
+(CPPlotSymbol *)customPlotSymbolWithPath:(CGPathRef)aPath
尽管我一直在阅读有关创建的苹果文档,但我在这个特定主题上只能找到有限的帮助,但CGPathRef
无法使自定义符号正常工作。我的最终目标是创建如下符号:
有些符号需要有红色的内圈和一些蓝色的,有些根本不需要外圈(在这种情况下我使用ellipsePlotSymbol
没有问题)。
我知道我可以“作弊(!)”并且只使用填充rectanglePlotSymbol
或类似的背景图像,但我真的很想在代码中执行此操作,因此我不必每次需要新颜色时都创建不同的图像等。
我已经开始了,但请专家完成/帮助解决这个问题!谢谢你。
// Set up Risk Plot and add to Graph
self.riskValuesPlot = [[CPTScatterPlot alloc] init];
self.riskValuesPlot.dataSource = self;
self.riskValuesPlot.identifier = @"Risk Values";
CPTColor *riskPlotColor = [CPTColor colorWithComponentRed:49.0/255.0 green:82.0/255.0 blue:151.0/255.0 alpha:1.0];
[graph addPlot:self.riskValuesPlot toPlotSpace:plotSpace];
// Risk Values Line and Point Style
CPTMutableLineStyle *riskLineStyle = [self.riskValuesPlot.dataLineStyle mutableCopy];
riskLineStyle.lineWidth = 0.0f;
self.riskValuesPlot.dataLineStyle = riskLineStyle;
// Trying to draw the outer circle...help required
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 0.0f, 0.0f);
CGPathAddArc(path, NULL, 0.0f, 0.0f, 3.0f, 0, M_PI * 180, YES);
CPTPlotSymbol *riskSymbol = [CPTPlotSymbol customPlotSymbolWithPath:path];
CGPathRelease(path);
// Draw inner circle here
// Set path color then draw circle path with fill?
...
CPTMutableLineStyle *riskSymbolLineStyle = [CPTMutableLineStyle lineStyle];
riskSymbolLineStyle.lineColor = riskPlotColor;
riskSymbol.lineStyle = riskSymbolLineStyle;
riskSymbol.size = CGSizeMake(8.0f, 8.0f);
self.riskValuesPlot.plotSymbol = riskSymbol;