Cómo crear un marcador de gráfico flotante con ios-charts

Estoy usando el marco ioscharts y quiero crear un marcador que flote sobre el gráfico cuando toco y muevo mi dedo de lado a lado. Estoy usando un gráfico de líneas solo como reference.

Sin embargo, no puedo imaginar cómo get la position del marcador en el gráfico cuando lo toco.

He leído sobre la subclass MarkerView, pero eso no funciona. ¿Me puede mostrar cómo get la position del punto que aparece cuando toca un ios-chart?

Así que finalmente conseguí que esto funcione y quería agregarlo a la comunidad. A continuación, se muestra mi gráfico:

introduzca la descripción de la imagen aquí

Cuando ejecuta su dedo sobre el gráfico, el lector de arriba se mueve y lee el valor del gráfico.

Para que esto funcione, tuve que hacer lo siguiente:

  1. En el file que está implementando el gráfico, asegúrese de include ChartViewDelegate

  2. Luego implementa el método chartValueSelected .

  3. Si luego usa el método getMarkerPosition , podrá centrar su "marcador" donde lo desee.

Aquí hay un código de ejemplo:

class MarkerView: UIView { @IBOutlet var valueLabel: UILabel! @IBOutlet var metricLabel: UILabel! @IBOutlet var dateLabel: UILabel! } let markerView = MarkerView() func chartValueSelected(chartView: ChartViewBase, entry: ChartDataEntry, dataSetIndex: Int, highlight: ChartHighlight) { let graphPoint = chartView.getMarkerPosition(entry: entry, highlight: highlight) // Adding top marker markerView.valueLabel.text = "\(entry.value)" markerView.dateLabel.text = "\(months[entry.xIndex])" markerView.center = CGPointMake(graphPoint.x, markerView.center.y) markerView.hidden = false } 

markerView es un xib que agregué manualmente a la vista principal que también contiene la vista de gráfico. markerView es una UIView que contiene tres tags. Es el 3.0, las impresiones y el abril que ves en la image.

graphPoint es el CGPoint ubicado en el gráfico. Puede usar la xyy del graphPoint para reposicionar su markerView . Aquí simplemente guardé el valor de y del markerView el mismo y cambié su valor x para que se mueva hacia adelante y hacia atrás al tacto.