我以前从来没有遇到过这个问题。我的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");
}
}
答案 0 :(得分:4)
如果图层不是任何图层树的一部分,则动画将立即结束,因为在屏幕上实际上没有任何动画可用。确保将动画视图添加到可见视图层次结构中。