如何跳过动画的一部分?

时间:2015-12-14 12:58:07

标签: ios swift animation core-animation cabasicanimation

我的视图最初位于 A 位置,另外两个位置名为 B C
此图像显示视图的初始状态。

enter image description here

我想要实现的是将视图从 B 设置为 C 以不同的方式设置动画。

我希望动画对象从 A 开始,然后在 C 结束,但跳过 A→B 部分,只执行 B→C 部分。

代码应如下所示:

// aLabel and cLabel are the labels shown in the image above
let a = aLabel.center.x
let c = cLabel.center.x

let animation = CABasicAnimation(keyPath: "position.x")
animation.duration = 3

// The animation should start in code from A
animation.fromValue = a

// And ends at C
animation.toValue = c

// Update the model layer
someView.layer.position.x = c

/* ADD SOMETHING TO MAKE THE ANIMATION 
STARTS FROM B AND ENDS AT C */

我已经尝试了什么

我尝试将动画偏移设置为1.5:

animation.timeOffset = 1.5

但它无效。动画执行如下: B→C→A→B ,我只想 B→C

1 个答案:

答案 0 :(得分:3)

要跳过 A→B 部分,您可以将fromValue设置为bLabel中心。

animation.fromValue = bLabel.center.x

如果您希望fromValuetoValue设置repeatDuration以及timeOffset

    animation.timeOffset = 1.5
    animation.repeatDuration = 1.5