2010-07-12 4 views

Répondre

2

Vous créez simplement un CGPath qui décrit les grandes lignes de votre symbole personnalisé. Voici un exemple de CPTestApp (dans le CorePlot/dossier exemples):

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); 

Vous pouvez définir la propriété plotSymbol sur le nuage de points pour appliquer votre symbole à chaque point ou utiliser la méthode -symbolForScatterPlot:recordIndex: ou -symbolsForScatterPlot:recordIndexRange: source de données pour l'appliquer à certains des points.

+0

Merci pour votre précieuse réponse. est-ce le support de l'iphone os? – sri

+0

Oui, presque tout dans Core Plot est multi-plateforme entre MacOS et iOS. Dans les cas où il existe des différences de plate-forme (par exemple, NSView vs UIView), il existe généralement une implémentation spécifique à la plate-forme de cette fonctionnalité. –

+0

Je ne suis pas capable de faire fonctionner mon application dans CorePlot 0.9 - des suggestions? – Johnus

Questions connexes