运行时与MPAndroidChart的用户交互

时间:2016-07-25 08:39:54

标签: ios mpandroidchart ios-charts

首先我应该说MPAndroidChart很棒,你带来了几个功能和定制,这让它非常酷。

我希望通过MPAndroidChart添加用户互动,

我的要求是:

在组合图表(折线图和气泡图)中,我希望用户在MPAndroidChart的x,y坐标空间中拖动和移动数据点。

我希望用户拖动显示的数据, 如何实现这一点,哪个类可以分类来实现这一点。

1 个答案:

答案 0 :(得分:2)

为图表数据添加交互性 - 你需要一个带有平移手势的视图

需要子类化CombinedChartView,LineChartRenderer,BubbleChartRenderer

创建渲染器对象, - 此渲染器对象需要由CombinedChartView中创建的渲染器替换,因此我们将其子类化并将渲染器对象替换为子类型的渲染器。

在我们的CombinedChartView(子类)中覆盖数据变量的getter,setter,因此在分配数据时,我们使用Pan手势创建一次UIView,在UIView中引用它对应的ChartDataEntry,因此在UIView的Pan处理函数我们改变了这个DataEntry的xIndex等并调用了setNeedsDisplay。(UIView的帧位置还不知道,保留原点)

在我们的Renderer类(LineChartRenderer或BubbleChartRenderer的子类)中覆盖DrawDataSet函数 - 这是实际绘图发生的地方,这是我们可以获得UIView的精确x,y坐标的地方,我们最终设置在CombinedChartView中创建的视图的框架位置。

那就是它,当我们平移UIView时,视图将平移并反过来移动ChartDataEntry的xIndex