в core-plot Как мне перевести в координаты с помощью метода plotSymbolWasSelectedAtRecordIndex? - PullRequest
2 голосов
/ 13 января 2011

Я вижу, что в примере с версией для Mac они использовали связывание и NSArrayController (оба из которых недоступны в iOs?)

что у меня есть от

(void)scatterPlot:(CPScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex:(NSUInteger)index

- это индекс и сюжет в контексте.

Мне нужно получить точные координаты, чтобы я мог использовать поповер в этой точке.

заранее спасибо

1 Ответ

4 голосов
/ 13 января 2011

Когда вы предоставляли данные для точечной диаграммы, вы использовали

-(NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 

метод делегата (или что-то в этом роде). Часть запрашиваемой информации была recordIndex, которая обычно используется в качестве индекса в NSArray ваших точек данных.

Метод делегата, который вы показываете там, возвращает вам индекс, чтобы указать, что точка на диаграмме рассеяния взаимодействовала. Вы должны быть в состоянии получить координаты X, Y, которые соответствуют этому индексу в массиве источника данных, и использовать

double doublePrecisionPlotPoint[2];
doublePrecisionPlotPoint[CPCoordinateX] = [xValue doubleValue];
doublePrecisionPlotPoint[CPCoordinateY] = [yValue doubleValue];

CGPoint viewPoint = [graph.defaultPlotSpace plotAreaViewPointForDoublePrecisionPlotPoint:doublePrecisionPlotPoint];

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

...