Мы используем 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];
С помощью этого метод, мы получаем неверные значения, как показано на следующем рисунке.
Спасибо заранее.
Привет, Эрик, спасибо, что нашли время ответить. К сожалению, после завершения сеанса «graphPoint» приводит к тому же, что и «originalPoint». Есть предположения? –
Извините, я привык использовать методы пространственного пространства для преобразования в координаты и из чертежей. Они используют площадь участка. Замените 'plotArea'' self.temperatureAxis' в моем ответе, чтобы преобразовать точку, возвращаемую методом оси. –
Это хорошо работает Эрик, спасибо! –