Как вы рисуете вертикальную линию, используя coreplot CPPlotSymbol?

Как нарисовать вертикальную линию на plotSymbol с помощью Custom PlotSymbol? Если был бы признателен, дайте какие-нибудь образцы по этому поводу.

Шри


person sri    schedule 12.07.2010    source источник


Ответы (1)


Вы просто создаете 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:, чтобы применить его к некоторым точкам.

person Eric Skroch    schedule 13.07.2010
comment
Спасибо за ваш ценный ответ. это поддерживает iphone os? - person sri; 13.07.2010
comment
Да, почти все в Core Plot является кроссплатформенным между MacOS и iOS. В случаях, когда существуют различия между платформами (например, NSView и UIView), обычно существует реализация этой функции для конкретной платформы. - person Eric Skroch; 13.07.2010
comment
Я не могу заставить это работать в моем приложении в CorePlot 0.9 - есть предложения? - person Johnus; 30.01.2012
comment
@Johnus Задайте новый вопрос с подробностями о том, что вы уже пробовали. - person Eric Skroch; 30.01.2012