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 - 翻转视图显示白色背景的主要内容,如果未能解决你的问题,请参考以下文章