2015-04-02 6 views
1

Мы используем CorePlot, чтобы нарисовать диаграмму. В yAxis мы рисуем температуру.Преобразование точки диаграммы ядра в координатное пространство супервизора

Учитывая значение температуры, мы хотим найти y coordinate, который соответствует этой температуре в координатном пространстве UIViewController.

Наша точка зрения иерархия организована следующим образом:

_ UIViewController's main view (self.view) 
\_ UIScrollView 
    \_ ChartView 

почитав документацию, мы нашли -[CTPAxis viewPointForCoordinateDecimalNumber:] что должен делать именно то, что мы хотим.

Теперь, так как этот метод будет возвращать позицию Y в системе координат ChartView, мы используем -[UIView convertPoint:toView:] сделать перевод из ChartView в UIScrollView, а затем к основному мнению UIViewController в:

//self is the UIViewController 
CGPoint *originalPoint = [self.temperatureAxis viewPointForCoordinateDecimalNumber:temperature]; 
CGPoint *scrollViewConvertedPoint = [self.chartView convertPoint:originalPoint toView:self.scrollView]; 
CGPoint *finalPoint = [self.scrollView convertPoint:scrollViewConvertedPoint toView:self.view]; 

С помощью этого метод, мы получаем неверные значения, как показано на следующем рисунке.

enter image description here

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

ответ

2

originalPoint находится в координатном пространстве участка. Преобразуйте его в координатное пространство графика перед выполнением преобразований вида.

CGPoint graphPoint = [graph convertPoint:originalPoint 
           fromLayer:graph.plotAreaFrame.plotArea]; 
+0

Привет, Эрик, спасибо, что нашли время ответить. К сожалению, после завершения сеанса «graphPoint» приводит к тому же, что и «originalPoint». Есть предположения? –

+0

Извините, я привык использовать методы пространственного пространства для преобразования в координаты и из чертежей. Они используют площадь участка. Замените 'plotArea'' self.temperatureAxis' в моем ответе, чтобы преобразовать точку, возвращаемую методом оси. –

+0

Это хорошо работает Эрик, спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^