2012-09-10 4 views
1

Je fais un jeu dans lequel quand l'utilisateur fait un mouvement les carrés de source et de destination s'allument dans une animation. La durée de l'animation est 1 sec. Le problème est que lorsque l'utilisateur appuie trop rapidement sur le bouton d'avance, tous les carrés de destination et de destination s'allument, ce qui entraîne l'apparition de nombreux carrés lumineux dus au démarrage de la deuxième animation avant la fin du premier. Comment puis-je interrompre brusquement une animation quand sa durée n'est pas terminée?Comment mettre fin abruptement à une animation?

code de fonction

d'animation: -

[UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:value]; 
    [UIView setAnimationRepeatCount:1]; 
    // [UIView setAnimationRepeatAutoreverses:YES]; 

    [self.view viewWithTag:(src+1)+2000].backgroundColor=[UIColor orangeColor]; 
    [self.view viewWithTag:(src+1)+2000].backgroundColor=[UIColor clearColor]; 
    [self.view viewWithTag:(dest+1)+2000].backgroundColor=[UIColor orangeColor]; 
    [self.view viewWithTag:(dest+1)+2000].backgroundColor=[UIColor clearColor]; 
    [UIView commitAnimations]; 

Note: - J'accepte vers le bas vote comme une façon saine de la critique, mais ne pas écrire la raison pour que je puisse améliorer

Répondre

1

utilisation

#import <QuartzCore/QuartzCore.h> 

....... 

[myView.layer removeAllAnimations]; 

espérons que cela aide. codage heureux :)

+0

4 minutes ... très calculatrice :) et aussi upvote pour que cela aide les gens à l'avenir. Merci –

+0

c'est ce que stackoverflow a dit :) – amar

+0

ok, @amar si possible, upvote aussi pour que cela aide d'autres utilisateurs à la recherche de la même ques, augmente l'intégrité de la réponse. Encore merci :) –