У меня никогда не возникала эта проблема. мой метод animationDidStop вызывается до завершения анимации. animationDidStart сначала вызывается, но затем анимацияDidStop вызывается сразу после. Я попытался справиться с этим, используя блок завершения анимации, но он назвал анимацию завершенной немедленно. Кто-нибудь сталкивается с этим раньше? Я действительно мог бы немного помочь. СПАСИБО.animationDidStop метод, вызываемый сразу
-Джеймс
КОД:
-(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");
}
}
Есть ли ошибка в вашем примере кода? Вы добавляете «animateStuff» вместо «animation» –
Вы пытались использовать блок завершения CATransaction? –