如何在iOS图表中获得点的坐标?

时间:2016-02-04 14:28:47

标签: ios objective-c ios-charts

我正试图获得LineChart的情节坐标。

我已经搜索了几个小时,但我发现只有一个解决方案,但它仅取决于xAxis并始终将CGPoint.y设置为零。

我想获得X和Y坐标。

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

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您必须实施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;

        }
    }
}

答案 1 :(得分:0)

这里解释得太多了。

ChartTransformer,用于将数据坐标空间转换为像素坐标空间,反之亦然。

因此,在ChartTransformer中,有几种方法可以完成工作,例如pointValueToPixelpixelToValue

您可以尝试找出一种聪明的方法来编写更多方法或代理来传递您想要的坐标。

您必须详细查看代码以了解如何使用它们。一个很好的例子是x轴渲染器的drawGridLine