ios – 如何沿着UIBezierPath动画完整CALayer动画的百分比?

我设法沿着UIBezierPath为CALayer制作动画.

我想要完成的是仅为路径的一定百分比设置动画,例如,仅为路径的25%,并且该层保持在该位置(25%).

这样做的方法是什么?这是我的代码,它总是为完整路径设置动画.

let aPath = UIBizierPath(CGPath: somePath)
let anim = CAKeyframeAnimation(keyPath: "position")
anim.path = aPath.CGPath
anim.rotationMode = kCAAnimationRotateAuto
anim.repeatCount = 1
anim.fillMode = kCAFillModeForwards
anim.removedOnCompletion = false
anim.duration = 3.0
anim.timingFunction = camediatimingFunction(name: kcamediatimingFunctionEaseInEaSEOut)

ticker.addAnimation(anim,forKey: "animate_ticker")

解决方法

简单改变一个属性
anim.repeatCount = 0.25

这是一个 excellent article on animation timing,你可以学习如何对你的动画进行更细粒度的控制.

附加:
1.为了实现你想要的,最接近的方法是拥有25%的子路径,这里有一些helper method.

2.如果您能忍受速度差异,请使用上述方法,并在动画结束时设置回位置:

ticker.position = ticker.presentationLayer().position

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...