Использование CPTAnnotation в CorePlot DatePlot (iOS) - PullRequest
3 голосов
/ 05 октября 2011

Я использую CorePlot в своем приложении и хочу отобразить аннотацию на plotSymbol.Я не нашел никакого кода в примерах проектов последней версии 0.9 CorePlot.После некоторого исследования я пришел к этой точке:

- (void)scatterPlot:(CPTScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex:(NSUInteger)index
{
    CPTLayerAnnotation *annot = [[CPTLayerAnnotation alloc]initWithAnchorLayer:graph];
    CPTBorderedLayer * logoLayer = [[(CPTBorderedLayer *) [CPTBorderedLayer alloc] initWithFrame:CGRectMake(10,10,100,50)] autorelease]; 
    CPTFill *fillImage = [CPTFill fillWithImage:[CPTImage imageForPNGFile:@"whatEver!"]]; 
    logoLayer.fill = fillImage; 
    annot.contentLayer = logoLayer; 
    annot.rectAnchor=CPTRectAnchorTop;
    [graph addAnnotation:annot];
}

Но это, очевидно, не работает .... Кто-нибудь может мне помочь?

Моя цель - получить аннотацию по выбранному сюжетусимвол, похожий на аннотации в MKMapView.

Обновление

Это DatePlot, просто чтобы прояснить ситуацию, и он работает с временными интервалами с 2001 года по оси X.

1 Ответ

4 голосов
/ 06 октября 2011

Есть несколько примеров этого в примерах приложений Core Plot.Градиентная диаграмма рассеяния в приложении Plot Gallery (и некоторых других приложениях) использует этот метод, чтобы прикрепить текстовую метку к выбранной точке.Демонстрация выбора точек в версии CPTTestApp для Mac использует второй график рассеяния для рисования перекрестия над выбранной точкой.

Не забудьте также установить свойство plotSymbolMarginForHitDetection на графике рассеяния.По умолчанию установлено значение 0, что означает, что вам нужно точно попасть в центр точки, чтобы зарегистрировать касание.

В Базовом графике есть два типа комментариев.CPTLayerAnnotation привязан к данному слою Core Animation (график в вашем случае).CPTPlotSpaceAnnotation привязывается к координатной области графика (== координата данных).Ваш комментарий ниже звучит так, как будто вы хотите использовать аннотацию пространства графика вместо аннотации слоя.

...