我设法沿着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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。