2016-02-01 3 views
0

У меня никогда не возникала эта проблема. мой метод 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"); 

    } 

} 
+0

Есть ли ошибка в вашем примере кода? Вы добавляете «animateStuff» вместо «animation» –

+0

Вы пытались использовать блок завершения CATransaction? –

ответ

2

Если слой не является частью любого дерева слоя, то анимация закончится сразу же, так как нет ничего на самом деле анимации на экране. Убедитесь, что анимированное представление добавлено в видимую иерархию.

Смежные вопросы