如何在 iOS-charts 中获取点的坐标?

How can I get the point's coordinate in iOS-charts?

我正在尝试获取折线图的坐标。

我搜索了几个小时,但我只找到了一个解决方案,但它只依赖于 xAxis,并且总是将 CGPoint.y 设置为零。

我想获取X和Y坐标。

原因是图表的 xAxis 以小时为基准并显示年份,因此即使我展开图表也很难点击该点以显示标记。我尝试了很多东西,但我无法理解,也没有成功检测到水龙头。

然后我想如果我能得到点的坐标,我可以建立一个bd-tree来存储它们并找到离点击点最近的坐标。

感谢您的帮助。

您必须实施 ChartViewDelegate 然后实施以下方法才能在您的图表视图中获取接触点

-(void)chartValueNothingSelected:(ChartViewBase *)chartView{
    NSArray *gestureRecognizers = chartView.gestureRecognizers;
    int count = 0;
    for(UIGestureRecognizer *gesture in chartView.gestureRecognizers){
        if([gesture isKindOfClass:[UITapGestureRecognizer class]] && gesture.state == UIGestureRecognizerStateEnded){
            float xVal = [self.chartDataView getValueByTouchPointWithPt:[gesture locationInView:self.chartDataView] axis:AxisDependencyLeft].x;

        }
    }
}

这里就不多说了

还有ChartTransformer,用于将数据坐标space转换为像素坐标space,反之

因此,在 ChartTransformer 中,有 pointValueToPixelpixelToValue 等几种方法来完成工作。

你可以试着想出一个聪明的方法来编写更多的方法或委托来传递你想要的坐标。

您必须详细查看代码才能知道如何使用它们。一个很好的例子是 x 轴渲染器的 drawGridLine.