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

Posted

技术标签:

【中文标题】iPhone - 翻转视图显示白色背景【英文标题】:iPhone - flipping views shows a white background 【发布时间】:2009-07-03 11:48:08 【问题描述】:

我正在使用翻转动画在我的视图控制器中的两个视图之间制作动画。问题是在动画发生时背景显示为白色空白背景。我想显示黑色背景。

我尝试在 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

即使在这之后我得到一个白色背景

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

您首先创建一个假主视图,并将其背景设置为黑色:

// 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];添加子视图的顺序是相关的。

【讨论】:

谢谢。我无法让它工作。在问题中发布代码

以上是关于iPhone - 翻转视图显示白色背景的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 开发,UITableView 背景颜色

在 iPhone 上设置表格视图单元格的背景颜色

我们如何像在 iphone 应用程序中翻页一样翻转视图?

如何在 iPhone X 的主页指示器下方扩展底视图颜色?

使用翻转视图 (iPhone) 时出现抖动事件的问题

iphone视图翻转:从上到下而不是从右到左的视图翻转