2012-07-29 6 views
0

J'utilise ce morceau de code pour une animation dans un de mes vues:Comment afficher les boutons après une animation?

animation.animationImages= [NSArray arrayWithObjects: 
           [UIImage imageNamed:@"Frame0.png"], 
           [UIImage imageNamed:@"Frame1.png"], 
           [UIImage imageNamed:@"Frame2.png"], 
           [UIImage imageNamed:@"Frame3.png"], 
           [UIImage imageNamed:@"Frame4.png"], 
           [UIImage imageNamed:@"Frame5.png"], 
           [UIImage imageNamed:@"Frame6.png"], 
           [UIImage imageNamed:@"Frame7.png"], 
           [UIImage imageNamed:@"Frame8.png"], 
           [UIImage imageNamed:@"Frame9.png"], 
           [UIImage imageNamed:@"Frame10.png"], 
           [UIImage imageNamed:@"Frame11.png"], 
           [UIImage imageNamed:@"Frame12.png"], 
           [UIImage imageNamed:@"Frame13.png"], 
           [UIImage imageNamed:@"Frame14.png"], 
           nil]; 

    [animation setAnimationRepeatCount:1]; 
    animation.animationDuration = 1; 
    [animation startAnimating]; 

Maintenant je dois dire lorsque l'animation se termine 2 boutons apparaissent, « menu » et « rejouer » -je utiliser stopanimating ou autre chose, s'il vous plaît aider et expliquer comme je suis un débutant, merci pour toute l'aide :)

+0

Est-ce écrit en C++? –

+0

@AT, Obj-C le plus probable. Je ne sais pas pourquoi il n'y a pas de langue pour la langue en question. – chris

+0

Je déteste quand les utilisateurs posent des questions>. <- D'accord, il l'a relancé. –

Répondre

1

Eh bien votre durée de l'animation est de 1 seconde si vous faites quelque chose comme ceci:

animation.animationImages= [NSArray arrayWithObjects: 
           [UIImage imageNamed:@"Frame0.png"], 
           [UIImage imageNamed:@"Frame1.png"], 
           [UIImage imageNamed:@"Frame2.png"], 
           [UIImage imageNamed:@"Frame3.png"], 
           [UIImage imageNamed:@"Frame4.png"], 
           [UIImage imageNamed:@"Frame5.png"], 
           [UIImage imageNamed:@"Frame6.png"], 
           [UIImage imageNamed:@"Frame7.png"], 
           [UIImage imageNamed:@"Frame8.png"], 
           [UIImage imageNamed:@"Frame9.png"], 
           [UIImage imageNamed:@"Frame10.png"], 
           [UIImage imageNamed:@"Frame11.png"], 
           [UIImage imageNamed:@"Frame12.png"], 
           [UIImage imageNamed:@"Frame13.png"], 
           [UIImage imageNamed:@"Frame14.png"], 
           nil]; 

    [animation setAnimationRepeatCount:1]; 
    animation.animationDuration = 1; 
    [animation startAnimating]; 
    [self performSelector:@selector(didFinishAnimating) withObject:nil afterDelay:1.0]; 


-(void) didFinishAnimating { 
    //animation ended add some buttons 
} 
+0

Ne serait-ce pas setAnimationDidStopSelector? –

+0

Il utilise la propriété animationImages de UIImageView. Il n'a malheureusement pas de setAnimationDidStopSelector d'animation UIView. – shabbirv

+0

Merci, bon à savoir! –

0

vous pouvez simplement utiliser un NSTimer à c toute autre méthode une fois l'animation terminée, achetez en utilisant le même intervalle de temps pour les propriétés NSTimer et animationDuration.

animation.animationImages= [NSArray arrayWithObjects: 
          [UIImage imageNamed:@"Frame0.png"], 
          [UIImage imageNamed:@"Frame1.png"], 
          [UIImage imageNamed:@"Frame2.png"], 
          [UIImage imageNamed:@"Frame3.png"], 
          [UIImage imageNamed:@"Frame4.png"], 
          [UIImage imageNamed:@"Frame5.png"], 
          [UIImage imageNamed:@"Frame6.png"], 
          [UIImage imageNamed:@"Frame7.png"], 
          [UIImage imageNamed:@"Frame8.png"], 
          [UIImage imageNamed:@"Frame9.png"], 
          [UIImage imageNamed:@"Frame10.png"], 
          [UIImage imageNamed:@"Frame11.png"], 
          [UIImage imageNamed:@"Frame12.png"], 
          [UIImage imageNamed:@"Frame13.png"], 
          [UIImage imageNamed:@"Frame14.png"], 
          nil]; 

[animation setAnimationRepeatCount:1]; 
animation.animationDuration = 1; 
[animation startAnimating]; 
[NSTimer scheduledTimerWithTimeInterval:1 
            target:self 
           selector:@selector(showOtherButtonsAfterAnimation:) 
           userInfo:nil 
           repeats:NO]; 

Le NSTimer va appeler la méthode définie dans le sélecteur (showOtherButtonsAfterAnimation :) de l'objet cible (auto-) après l'intervalle sélectionné (1 seconde). La méthode showOtherButtonsAfterAnimation: doit avoir un argument NSTimer même si vous ne l'utilisez jamais dans la méthode.

-(void)showOtherButtonsAfterAnimation:(NSTimer*)theTimer { .... whatever ..... } 
Questions connexes