J'ai le code d'animation dans une classe qui étend la UIView:Comment faire une animation flip entre plus de deux UIViews?
// Start Animation Block
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:[self superview] cache:YES];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:1.0];
//int nextView = currentView + 1;
// Animations
[[self superview] exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
//And so I would do: [[self superview exchangeSubviewAtIndex:currentView withSubviewAtIndex:nextView];
//Doesn't work because curentView is not global... with each instance of a class it's reset to what it's instanciated to.
//currentView++;
// Commit Animation Block
[UIView commitAnimations];
Ce code d'animation fonctionne très bien pour les deux points de vue. Mais j'essaye de faire ceci pour beaucoup de vues. J'ai essayé en ajoutant une variable globale (index de nextview et index de currentView), cependant ceci ne fonctionne pas puisque chaque classe de vue personnalisée a sa propre instance et ces variables ne sont pas partagées.
Est-ce que quelqu'un sait comment je peux accomplir ce que je veux faire?
Merci! Editer: Je serais capable de le faire, si je pouvais utiliser [self-top] pour accéder à l'index de la vue actuelle et de la vue suivante. Existe-t-il des méthodes pour le faire?
J'ai un tableau de vues que je crée dans l'appdelegate et j'ajoute un tableau différent à chaque contrôleur de vue d'onglets. Ensuite, le contrôleur utilise ce tableau pour créer des uiviews avec animation pour basculer entre eux. J'ai des problèmes avec le basculement de l'animation ... – rksprst
Il n'est pas nécessaire d'implémenter une liste chaînée. 'NSArray' est parfaitement bien pour ça. Si vous êtes vraiment préoccupé par la performance, lisez [cet article] (http://ridiculousfish.com/blog/?p=27). –