我有一个包含100个项目的条形图。我一次只显示10个,我启用了滚动功能。 一切都很好,但我想显示图表的结尾而不是开头(新数据)。 唯一的方法是在viewDidAppear中使用moveViewToX函数。
问题是图表首先显示并在开头设置动画,然后结束,这不是很漂亮。 如何直接在正确的位置显示图形?
(当我将moveViewToX函数移动到viewDidAppear以外的地方时,它不起作用。)
谢谢:)
答案 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
中,它与图表渲染处于异步模式,因此你无法控制它。
要回答您的问题,我无法向您提供确切的解决方案,但我可以提供一些方法来尝试:
继承图表视图的子类,在图表视图代码中的某处调用moveViewToX(),如drawRect()
的最后一行,以查看它是否有效;
如果您熟悉ChartTransformer,refresh
中有一个名为ChartViewPortHandler
的方法,只要您知道如何使用矩阵,就应该可以导航到任何位置。看看这篇文章:https://github.com/danielgindi/ios-charts/issues/226