小编T. *_*ard的帖子

在 Swift 中对 CAShapeLayer 路径从旧值到新值进行动画处理

我是核心动画的新手,我正在尝试根据新数据将strokeEnda 的CAShapeLayer,从旧值更新为新的更新值。

所以基本上我有一个绘制的CAShapeLayer,并更新它UIBezierPath,并使用,通过这样做来CABasicAnimation(forKey: "strokeEnd")为新的动画:strokeEnd

layerAnimation = CABasicAnimation(keyPath: "strokeEnd")
layerAnimation.toValue = 1
shapeLayer.strokeEnd = 1
layerAnimation.duration = 0.4
shapeLayer.add(layerAnimation, forKey: animation.identifier)
Run Code Online (Sandbox Code Playgroud)

其中animation.identifierString Enum确定应使用哪个动画的值。

到目前为止,我一直在深入研究苹果的核心动画文档,以及堆栈溢出,以寻找可能的线索,但到目前为止没有任何运气。

据我了解,通过仅在动画中分配一个值,核心动画本身就会找出路径,但到目前为止还没有运气。我还尝试计算新旧顶部 Y 值之间的差异,并使用byValue, 和不带fromValueor toValue

绘制了更新的路径,但不幸的是更新时没有显示动画strokeEnd

任何帮助、提示或建议,我们将不胜感激。

干杯!


根据 @matt 的反馈进行编辑以添加更多详细信息:TLDR;更新路径,我想我应该用 toValue 来制作动画。

我正在存储一个包含CAShapeLayerUIBezierPath. 该路径是根据可以是三个不同值的数据确定的,并且应该从 (x: i, y: 0) -> (x: i, y: n) 开始。其中 x 是固定位置,y 是给定 array[i] 列中路径的终点。

如果第 …

core-animation cashapelayer swift

4
推荐指数
1
解决办法
3784
查看次数

标签 统计

cashapelayer ×1

core-animation ×1

swift ×1