Search code examples
iphoneuiviewuiviewanimationuiviewanimationtransition

How do I control the background color during the iPhone flip view animation transition?


I have some pretty standard flipping action going on:

[UIView beginAnimations:@"swapScreens" context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
[UIView setAnimationDuration:1.0];
[self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
[UIView commitAnimations]; 

To Apple's credit, this style of animation is amazingly easy to work with. Very cool, and I've been able to animate transitions, flips, fades etc. throughout the app very easily.

Question: During the flip transition, the background visible 'behind' the two views during the flip is white and I'd like it to be black. I've:

  • Set the background of the containing view (self.view above) - no dice. I really thought that would work.
  • Set the background of each view to black - no dice. I didn't think this would work although you give different things a shot to understand better :)
  • Google'd like crazy; keep landing on Safari-related listings.

Thanks in advance!


Solution

  • You could use a color or an image. You can add a view to do it:

    UIWindow *window = [appDelegate window];
    UIView *bgView = [[UIView alloc] init];
    [bgView setBackgroundColor:[UIColor blackColor]];
    [window addSubView:bgView];
    

    Or set the background color on the window directly:

    [[appDelegate window] setBackgroundColor:[UIColor blackColor]];