如何用ios-charts创build浮动graphics标记

我正在使用ios-charts框架,并且当我触摸并移动我的手指从一边到另一边时,想要创build浮动在图上的标记。 我使用折线图仅供参考。

但是,当我触摸它时,我无法弄清楚如何获得图表上的标记位置。

我已经读过子类化MarkerView,但这是行不通的。 你能告诉我如何获得当你触摸ios图表时显示的点的位置吗?

所以我终于得到了这个工作,并希望将其添加到社区。 以下是我的图表:

在这里输入图像说明

当您将手指放在图表上时,上面的阅读器移动并从图表中读取数值。

要做到这一点,我必须做到以下几点:

  1. 在你正在实现的graphics文件中,一定要包含ChartViewDelegate

  2. 然后实现chartValueSelected方法。

  3. 如果您使用getMarkerPosition方法,则可以将“标记” 置于任意位置。

以下是一些示例代码:

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是我手动添加到主视图,也包含graphics视图的xib。 markerView是包含三个标签的UIView。 这是3.0的印象,4月你看到的图片。

graphPoint是位于图表上的CGPoint。 您可以使用graphPoint的x和y来重新定位您的markerView 。 在这里,我简单地保持了markerView的y值相同,并改变它的x值,使它在触摸上来回移动。