Iphone 在animationDidStop中,动画';s地址与我添加到层中的动画地址不同?

Iphone 在animationDidStop中,动画';s地址与我添加到层中的动画地址不同?,iphone,ios,Iphone,Ios,代码如下:我在viewcontroller中存储了3个动画,但是当-(void)animationDidStop:(CAAnimation*)anim finished:(BOOL)标志被调用时,我发现动画的地址与它们中的任何一个都不相同,为什么 - (void) redoAni { circleHalfCaloryMask.alpha = 1; circleHalfTimeMask.alpha = 1; circleHalfStopWatchMask.alpha = 1

代码如下:我在viewcontroller中存储了3个动画,但是当-(void)animationDidStop:(CAAnimation*)anim finished:(BOOL)标志被调用时,我发现动画的地址与它们中的任何一个都不相同,为什么

- (void) redoAni
{
    circleHalfCaloryMask.alpha = 1;
    circleHalfTimeMask.alpha = 1;
    circleHalfStopWatchMask.alpha = 1;


    //[circleHalfCalory removeFromSuperview];
    //circleHalfCalory.alpha = 0;
    [circleHalfCaloryMask.layer addAnimation:rotate3 forKey:@"rotate3"];
    [circleHalfStopWatchMask.layer addAnimation:rotate2 forKey:@"rotate2"];
    [circleHalfTimeMask.layer addAnimation:rotate1 forKey:@"rotate1"];
}



    - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
    {
        if (anim == rotate1)
        {
            circleHalfTimeMask.alpha = 0;
        }
        else if (anim == rotate2)
        {
            circleHalfStopWatchMask.alpha = 0;
        }
        else if (anim == rotate3)
        {
            circleHalfCaloryMask.alpha = 0;
        }
        else
        {
        }
    }
在gdb中:

rotate1 CABasicAnimation *  0x07297280
rotate2 CABasicAnimation *  0x072899a0
rotate3 CABasicAnimation *  0x07297d40
anim    CABasicAnimation *  0x07285010

文件说:

  • (void)addAnimation:(CAAnimation*)anim forKey:(NSString*)键
动画

要添加到渲染树的动画。请注意,对象是 由渲染树复制,而不是引用。任何后续的 对对象的修改不会传播到渲染中 树


试试这个答案:好的,我知道了,非常感谢,所以如果我想区分它们,我必须设置一些属性;