设置具有圆形点的折线图的动画



我偶然发现了一个有趣的问题,我不知道如何解决它。我有一个折线图,上面的数据点用圆形点标记。目前,我正在为行本身创建一个CAShapeLayer,也为每个点创建CAShapeLayer

正在使用strokeEnd动画关键点路径为该线设置动画。它正在发挥作用。然而,稍微负面的影响是,一旦我打开图形,我就会看到所有已经绘制的数据点,然后一条线正在通过它们设置动画。

理想情况下,我希望以这样一种方式改变这种行为,即在一开始什么都不显示,并且随着线的动画化,一旦线穿过数据点,就会绘制数据点。

我思考这个问题已经有一段时间了,但我找不到一个优雅的方法来解决它。在我看来,应该有一个相当简单的方法来实现我想要的。也许我应该创建一个复合路径(但我如何指定一条线需要描边,而点需要填充?)。

有人能指引我朝正确的方向走吗?

有很多方法可以处理这个问题。

假设图形的X增量是恒定的,并且您使用的是线性计时,您可以简单地将总动画时间除以数据点的数量,并计算当线前进到X位置时需要向图形添加点的时间。只需按适当的时间间隔将点状图层添加到父视图的图层即可。

您也可以更改绘图方法,在计时器上一次一条地向图形路径添加新线段,并同时添加点形状。这会给你一个循序渐进的动画,而不是一个平滑的线条绘制。

相关内容

  • 没有找到相关文章

最新更新