我一直在尝试创建一系列动画,依次处理扑克牌中的三张牌。我只想为三张卡片的位置设置动画——比如第一个动画立即从第一张卡片的位置开始并持续 0.4 秒,第二个动画在 0.4 秒后以相同的持续时间开始,最后一个动画在 0.8 秒后开始。我不知道该怎么做!下面的代码不起作用。也许我需要使用 a CAGroupAnimation
,但我不知道如何在同一个属性上制作一组顺序动画!
CGFloat beginTime = 0.0;
for (Card *c in cards) {
CardLayer *cardLayer = [cardToLayerDictionary objectForKey:c];
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"position"];
anim.fromValue = [NSValue valueWithCGPoint:stockLayer.position];
anim.toValue = [NSValue valueWithCGPoint:wasteLayer.position];
anim.duration = 0.4;
anim.beginTime = beginTime;
beginTime += 0.4;
cardLayer.position = wasteLayer.position;
[cardLayer addAnimation:anim forKey:@"position"];
…
}