3 votes

Comment puis-je exclure de l'animation un morceau de code à l'intérieur d'un bloc d'animation central ?

J'ai un bloc d'animation où j'appelle une méthode qui va charger un contrôleur de vue. Il y a une transition personnalisée entre deux contrôleurs de vue qui se produit. Cependant, lorsque le contrôleur de vue construit l'interface, toutes ces choses sont affectées par l'animation de base. Bien que cela produise des effets intéressants, je ne veux pas de cela ;)

[UIView beginAnimations:@"jump to view controller" context:self];
[UIView setAnimationDuration:0.55];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

// some animated property-changes here...

[self loadViewControllerForIndex:targetIndex]; // everything that happens in this method shall not be animated

UIViewController *controller = [viewControllers objectAtIndex:targetIndex];
[controller viewWillAppear:YES];
[controller viewDidAppear:YES];

[UIView commitAnimations];

Malheureusement, je ne peux pas déplacer cette partie du bloc.

10voto

Brad Larson Points 122629

Vous devriez pouvoir supprimer les animations pour une section du bloc d'animation UIView en enveloppant cette section dans une CATransaction et en désactivant les animations pour cette section :

[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];    

// Changes to disable animation for here
[CATransaction commit];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X