2017-02-03 12 views
0

Я использую iOS Charts с Swift 3.IOS Диаграммы: Определить круг позиции на chartValueSelected()

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

Graph

Я обнаружить щелчок внутри chartValueSelected() и показать всплывающее окно, как это:

func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) { 
    //Set and show the popup... 
    //... 
    self.presentViewController(vc, asPopoverRelativeTo: frame, of: graph, preferredEdge: .minY, behavior: .transient) 
} 

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

Есть ли способ узнать координаты x/y, где находится щелкнутый круг?

ответ

0

А, нашел!

Значение hightlight, возвращаемое методом делегата, имеет xPx и yPx свойства, связанные с кругом. Вау, они действительно думали обо всем с этой графической библиотекой. :)

Так что я жестко закодированы относительное смещение, как это:

let frame = CGRect(x: highlight.xPx-36, y: highlight.yPx-15, width: 73, height: 54) 

... и это работает: enter image description here