2010-10-31 8 views
0

Mon application iPhone dispose de deux "vues" principales: un UIViewController avec des boutons, du texte, etc. et une fenêtre où tout le contenu d'OpenGL ES se produit. Quand je transition de la UIViewController à la fenêtre (lorsque l'utilisateur clique sur « play » par exemple), je fais juste:Transition animée entre UIViewController et EAGLView

[window ExchangeSubviewAtIndex:0 withSubviewAtIndex:1]; 

ceci est peut-être pas le moyen idéal de le faire? Je ne veux pas libérer les ressources utilisées par le UIViewController ... Je veux juste que la fenêtre soit en face. Comment puis-je animer la transition de UIViewController vers la fenêtre? Je suis vraiment à la recherche d'une animation très simple de fondu au noir.

Répondre

2

Avez-vous essayé l'ancienne clause UIViewAnimation? Peut-être jouer avec les propriétés de la vue de caché ou alpha et si vous voulez que ce fondu au noir, vous devez [Window setBackgroundColor: [UIColor blackColor]]; premier. Assurez-vous que les animations se déroulent dans le fil principal. Exemple de code suivant avec view1 étant la première sous-vue de la fenêtre et view2 l'autre sous-vue de la fenêtre.

- (void)switchToView1 { 
[UIView beginAnimations:@"fadeOut1" context:NULL]; 
[UIView setAnimationDuration:.5]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)]; 
view1.hidden = YES; 
[UIView commitAnimations]; 
} 

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context { 
if ([@"fadeOut1" isEqualToString:animationID] && [finished intValue] == 1) { 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:.5]; 
    view2.hidden = NO; 
    [UIView commitAnimations]; 
} 
} 

Dites-moi si cela fonctionne, bonne chance.

+0

Merci pour la réponse! J'ai quelque chose de similaire au travail: mettre le viewController.view.hidden = YES ... puis dessiner noir sur la surface opengl ... puis fondu dans la surface opengl. Donc je suppose que j'ai fait l'animation manuellement au lieu d'utiliser l'animation UIView. – MrDatabase

+0

Heureux de vous avoir aidé, mais avez-vous obtenu l'effet de fondu sur la vue de UIViewController de cette façon? – tsakoyan

Questions connexes