使用 CAKeyframeAnimation 延迟 UIView 的动画开始?

Cra*_*lot 0 core-animation uiview cakeyframeanimation uiviewanimation ios

以下代码是从另一个 SO 答案中提取的,但是是否可以延迟该CAKeyframeAnimation动画的开始,类似于 UIViewanimateWithDuration提供delay属性的方式?

根据类文档,该类CAKeyframeAnimation似乎不包含延迟属性。

    let animation = CAKeyframeAnimation(keyPath: "transform.translation.x")
    animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
    animation.duration = 1.0
    animation.repeatCount = 2
    animation.values = [-10, 10, -10, 10, -5, 5, -2, 2, 0]
    view.layer.addAnimation(animation, forKey: "shake")
Run Code Online (Sandbox Code Playgroud)

Vis*_*kar 6

你可以试试这个东西。尝试延迟动画的开始时间。

animation.beginTime = CACurrentMediaTime() + 5.0   // change to your custom delay.
Run Code Online (Sandbox Code Playgroud)