我正在尝试使用CASpringAnimation为CAShapeLayer路径设置动画。预期的结果是形状之间的“变形”,表现为“弹性”。
我有一个圆形和方形路径之间的基本代码示例,如下所示,但最终结果是一个Spring动画,它不会“过冲”超过最终的更大的方形路径,这是预期的行为。
我的代码是:
let springAnimation = CASpringAnimation(keyPath: "path")
springAnimation.damping = 1
springAnimation.duration = springAnimation.settlingDuration
springAnimation.fromValue = standardCirclePath().cgPath
springAnimation.toValue = standardSquarePath().cgPath
circleLayer.add(springAnimation, forKey: nil) // Where circleLayer (red background) is a sublayer of a basic UIView in the frame (blue background)
我有我的路径from this answer。
CASpringAnimation是否有办法实现CAShapeLayer路径转换?否则,还有什么选择?
2条答案
按热度按时间ahy6op9u1#
你好,我一直在处理你的问题,这是我的结果,在gif上的小故障是因为我的gif转换器是非常糟糕的转换器
这是密码
我希望这对你有帮助
rvpgvaaj2#
事实是:
CASpringAnimation只是不适用于路径。
就这样
即使是简单的路径,如扩大圆圈。
到2023年,这仍然是事实,不幸的是,这就是它的全部。
正如@CIFilter在评论中指出的那样,通常将路径扩展“更大”是一个不小的问题,他们根本没有解决。