在iOS图表上显示条形图的最后一项

时间:2015-10-09 12:51:53

标签: ios swift ios-charts

我有一个包含100个项目的条形图。我一次只显示10个,我启用了滚动功能。 一切都很好,但我想显示图表的结尾而不是开头(新数据)。 唯一的方法是在viewDidAppear中使用moveViewToX函数。

问题是图表首先显示并在开头设置动画,然后结束,这不是很漂亮。 如何直接在正确的位置显示图形?

(当我将moveViewToX函数移动到viewDidAppear以外的地方时,它不起作用。)

谢谢:)

2 个答案:

答案 0 :(得分:2)

通过将moveViewToX函数调用延迟0.1秒解决了同样的问题

func viewDidLoad() {
    // ... 

    let when = DispatchTime.now() + 0.1
    DispatchQueue.main.asyncAfter(deadline: when) {
        chartView.moveViewToX(lastXAxisValue)
    }
}

答案 1 :(得分:1)

我在github上看到了你的问题,所以请不要复制它。

我猜是因为你将moveViewToX放在viewDidAppear中,它与图表渲染处于异步模式,因此你无法控制它。

要回答您的问题,我无法向您提供确切的解决方案,但我可以提供一些方法来尝试:

  1. 继承图表视图的子类,在图表视图代码中的某处调用moveViewToX(),如drawRect()的最后一行,以查看它是否有效;

  2. 如果您熟悉ChartTransformer,refresh中有一个名为ChartViewPortHandler的方法,只要您知道如何使用矩阵,就应该可以导航到任何位置。看看这篇文章:https://github.com/danielgindi/ios-charts/issues/226