2009-07-03 7 views
6

J'utilise l'animation flip pour animer entre deux vues dans mon viewcontroller. Le problème est que l'arrière-plan montre un fond blanc blanc pendant que l'animation est en cours. Je voudrais montrer un fond noir.iPhone - renverser les vues montre un fond blanc

J'ai essayé de régler la couleur d'arrière-plan de la vue principale sur noir dans IB et le code. Mais l'arrière-plan est toujours blanc.

Quelqu'un peut-il m'aider s'il vous plaît.

Merci.

Ajout du code

[self setContentView:[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]]; 
contentView.backgroundColor = [UIColor blackColor]; 
[contentView addSubview:toolbar]; 
[self setView:contentView]; 
[contentView release]; 

frontView = [[FrontView alloc] initWithFrame:viewFrame]; 
[frontView setViewController:self]; 
[self.view insertSubview:frontView belowSubview:toolbar]; 

//Initializing the back view here too 
//on button click, executing normal flip code 

Même après cela, je reçois un fond blanc

Répondre

8

Je pense que votre problème pourrait être que l'UIWindow est montré pendant l'animation. Pour résoudre ce problème, définissez la couleur d'arrière-plan de votre fenêtre principale. Vous pouvez le faire dans le code ou dans IB.

0

Vous commencez par créer une vue principale faux, et mis son arrière-plan noir:

// Create the main view 
    UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    contentView.backgroundColor = [UIColor blackColor]; 
    self.view = contentView; 
    [contentView release]; 

Ensuite, vous créez vos vues avant et arrière et les ajoutez à votre vue principale:

// create front and back views 
UIView *frontView = ... 
UIView *backView = ... 

Si vous utilisez IB, passez à l'étape précédente et ajouter directement vos vues

// add the views 
    [self.view addSubview:backView]; 
    [self.view addSubview:frontView]; 

Maintenant, faites l'animation flip comme d'habitude.

EDIT: Probablement que cela ne fonctionne pas parce que dans votre code vous ajoutez le frontView sous la barre d'outils. Ajoutez d'abord le backView, puis le frontView et enfin la barre d'outils en utilisant la méthode addSubview: Ensuite, utilisez le code suivant pour animer le flip:

- (IBAction) flipView{ 
    // Start Animation Block 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    [UIView beginAnimations:nil context:context]; 
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIView setAnimationDuration:1.0]; 

    // Animations 
    [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1]; 

    // Commit Animation Block 
    [UIView commitAnimations]; 

} 

Étant donné que le code exécute [self.view exchangeSubviewAtIndex: 0 withSubviewAtIndex: 1]; l'ordre dans lequel vous ajoutez les sous-vues est pertinent.

+0

Merci. Je n'arrive pas à le faire marcher. l'affichage du code dans la question – lostInTransit

Questions connexes