dynamicDidStop方法立即调用

时间:2016-02-01 05:00:41

标签: objective-c core-animation cabasicanimation

我以前从来没有遇到过这个问题。我的animationDidStop方法在动画实际完成之前被调用。第一次调用animationDidStart,然后立即调用animationDidStop。我尝试使用动画完成块来处理这个问题,但它仍然立即调用动画。以前有人碰过这个吗?我真的可以用一些帮助。谢谢。

-James

CODE:

-(void) runAnimation {

//Create an animation that rotates the tile

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
[animation setDuration:6];
[animation setFromValue:[NSNumber numberWithFloat:0]];
[animation setToValue:[NSNumber numberWithFloat:0.5*M_PI]];
[animation setDelegate:self];
animation.fillMode = kCAFillModeForwards;
animation.removedOnCompletion = NO;

[[self.view viewWithTag:100].layer addAnimation:animation forKey:@"solutionRotate"];

}

-(void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
{

        if (theAnimation == [[self.view viewWithTag:100].layer animationForKey:@"solutionRotate"]){

            //test
            NSLog (@"test");

    }

}

1 个答案:

答案 0 :(得分:4)

如果图层不是任何图层树的一部分,则动画将立即结束,因为在屏幕上实际上没有任何动画可用。确保将动画视图添加到可见视图层次结构中。