CAAnimation委托在CAAnimationGroup中

时间:2012-08-27 14:58:37

标签: ios delegates caanimation cabasicanimation

我已将4 CABasicAnimation 分组到 CAAnimationGroup 。但问题在于

-(void) animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
每个动画都不会调用

CABasicAnimation *anim1;//code of anim1
anim1.deleagte=self;
CABasicAnimation *anim2://code of anim2
anim2.deleagte=self;
CABasicAnimation *anim3;//code of anim3
anim3.deleagte=self;
CABasicAnimation *anim4://code of anim4
anim4.deleagte=self;

CAAnimationGroup *animGrp;//code of animGrp
animGrp.delegate=self;
[imageView.layer addAnimation:animGrp forKey:@""];

我做错了什么或有不同的方法。

我的目标是为每个动画改变UIIImageView的位置。

所以,当anim1结束时我想更改Image,但我没有收到animationDidStop委托。

1 个答案:

答案 0 :(得分:3)

文档说明

`CAAnimationGroup` allows multiple animations to be grouped and run concurrently

Note: The delegate and removedOnCompletion properties of animations in the animations property are currently ignored.

通过简单地将beginTime设置为另一个动画的持续时间,您可以使用动画的beginTime在另一个动画完成后在组中启动一个动画。 Time Warp in Animation提供了从CAMediaTiming协议继承的属性的一个很好的解释。但是,在您的情况下,将一个动画添加到图层并使用委托进行注册并在第一个完成后向图层添加另一个动画可能会更方便。