2010-07-12 69 views

回答

2

您只需创建描述您的自定义符号的轮廓一个CGPath。下面是从CPTestApp样本(在CorePlot/examples文件夹):

CPPlotSymbol *symbol = [[[CPPlotSymbol alloc] init] autorelease]; 
CGMutablePathRef path = CGPathCreateMutable(); 
CGPathMoveToPoint(path, NULL, 0., 0.); 

CGPathAddEllipseInRect(path, NULL, CGRectMake(0., 0., 10., 10.)); 
CGPathAddEllipseInRect(path, NULL, CGRectMake(1.5, 4., 3., 3.)); 
CGPathAddEllipseInRect(path, NULL, CGRectMake(5.5, 4., 3., 3.)); 
CGPathMoveToPoint(path, NULL, 5., 2.); 
CGPathAddArc(path, NULL, 5., 3.3, 2.8, 0., pi, TRUE); 
CGPathCloseSubpath(path); 

symbol.customSymbolPath = path; 
symbol.usesEvenOddClipRule = YES; 
CGPathRelease(path); 

您可以设置散点图上的plotSymbol属性,将元件适用于每一个点或使用-symbolForScatterPlot:recordIndex:-symbolsForScatterPlot:recordIndexRange:数据源的方法将其应用到一些要点。

+0

感谢您的宝贵答案。它支持iPhone操作系统? – sri 2010-07-13 10:19:58

+0

是的,Core Plot中的几乎所有内容都是MacOS和iOS之间的跨平台。在存在平台差异的情况下(例如,NSView与UIView),通常会有特定于平台的特定实现。 – 2010-07-13 11:51:12

+0

我无法在CorePlot 0.9中的应用程序中使用此工作 - 有任何建议吗? – Johnus 2012-01-30 01:46:42