iPhone - 翻转视图显示白色背景

时间:2009-07-03 11:48:08

标签: iphone

我正在使用翻转动画在我的viewcontroller中的两个视图之间进行动画处理。问题是在动画发生时背景显示白色空白背景。我想展示黑色背景。

我尝试在IB和代码中将主视图的背景颜色设置为黑色。但背景仍然是白色。

有人可以帮帮我吗。

感谢。

添加代码

[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

即使在此之后,我也会获得白色背景

2 个答案:

答案 0 :(得分:8)

我认为您的问题可能是在动画期间显示UIWindow。要解决此问题,请设置主窗口的背景颜色。您可以在代码或IB中执行此操作。

答案 1 :(得分:0)

首先创建假主视图,然后将其背景设置为黑色:

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

然后,您可以创建前视图和后视图,并将它们添加到主视图中:

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

如果您使用的是IB,请跳过上一步并直接添加您的观点

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

现在像往常一样做翻转动画。

编辑:可能它不起作用,因为在你的代码中你添加了工具栏下面的frontView。首先使用addSubview:方法添加backView,然后是frontView,最后是工具栏。然后,使用以下代码为翻盖设置动画:

- (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];

}

由于代码执行[self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];添加子视图的顺序是相关的。