J'ai un bloc d'animation de base 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 passe. Cependant, lorsque le contrôleur de vue construit l'interface, tout ce matériel est affecté par l'animation du noyau. Bien qu'il en résulte des effets intéressants, je ne veux pas que;)Comment exclure un morceau de code d'un bloc d'animation de base d'une animation?
[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 bouger cette partie hors du bloc.
est-ce pas la même chose que + [CATransaction setDisableActions: YES] dans un bloc d'animation? –
@Andrew - Oui, '-setDisableActions:' a été ajouté dans iPhone OS 3.0 et Snow Leopard, et est identique à '-setValue: forKey:' J'utilise ci-dessus. J'avais attrapé ceci d'un certain code plus ancien que j'ai utilisé dans 2.0. –
Cela fonctionne bien pour moi, merci de partager cela. En outre, c'est mieux que l'approche [UIView setAnimationsEnabled: NO] que quelqu'un d'autre a posté ici (et apparemment supprimé la nuit dernière). Parce que cette approche a simplement désactivé * toute * animation, y compris celle que l'appelant a pu mettre en place pour lui-même. – uliwitness