gpt4 book ai didi

ios - 如何沿 UIBezierPath 仅对完整 CALayer 动画的一部分进行动画处理?

转载 作者:可可西里 更新时间:2023-11-01 03:17:10 25 4
gpt4 key购买 nike

我设法沿着 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 - 如何沿 UIBezierPath 仅对完整 CALayer 动画的一部分进行动画处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32940322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com