如何使用iOS图表库反转RTL语言的图表?

时间:2019-03-21 13:15:44

标签: ios charts ios-charts

问题:

我在iOS项目中使用图表库(https://github.com/danielgindi/Charts/),我需要添加对RTL语言的支持,这意味着如果设备语言为RTL,则要镜像图表。

说明:

在此示例中,我需要镜像烛台图。这是一个实时图表,这意味着它会进行更新,比方说每当新数据到达时就进行更新。

Chart appearance and behaviour in left to right layout (GIF, clickable)

在上面的屏幕截图中,您可以看到每个第十个值下面都有一个X轴标签,如果x轴上的最后一个标签之后的值少于10个,则不会显示其他标签。当数据集中的项目多于我要在图表上显示的条目数时,图表将移动并保持所有X轴标签与其值正确对齐。

问题:

此库中不支持RTL,因此我尝试自己为图表实现RTL布局,并遇到以下问题:

  1. 无法以相反的顺序显示数据集。我的解决方案是在添加到图表之前手动将其反转。如果出现新值-我只需将其添加到当前数据集的开头,然后通过调用chartView.movieViewToX(leftIndex)移动图表。不是实现此目标的最佳方法,但它可以工作。
  2. 与上述相同,但带有X轴标签。这是一个预定义的数组,因此每个条目都有自己的预定义标签。我还反转了此数组,以使X轴标签与数据集正确匹配。同样,当新条目到达时,我只需将新的X轴标签添加到数组的开头即可。
  3. 最有问题的部分是要实现相同的X轴行为。即使我做了上述操作,X轴标签仍然是从图表的左侧绘制的,请参见此GIF (clickable)。因此,如果我向数据集添加新条目,它将具有合适的X轴标签,但其余标签将保留在它们的位置并根据上面的新条目更改其值。

我浏览了库github回购上的堆栈溢出和“问题”页面,发现了类似的问题,但是没有找到适合我的解决方案。另外,尝试对XAxisRenderer进行更改,但也没有成功。

所以我的问题是如何在“镜像”图表中实现相同的外观和行为?

0 个答案:

没有答案