我该如何在iPhone翻转视图动画过渡期间控制背景颜色?

15

我有一些相当标准的翻转动作:

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

值得称赞的是,苹果的这种动画风格非常易于操作。很酷,我已经能够轻松地在整个应用程序中实现转换、翻转、淡入淡出等效果。

问题: 在翻转过渡期间,“在”两个视图之后可见的背景为白色,我希望它是黑色的。我尝试过:

  • 设置包含视图的背景(上面的self.view)- 无效。我真的以为会起作用。
  • 将每个视图的背景设置为黑色 - 无效。虽然你会尝试不同的方法来更好地理解 :)
  • 疯狂地谷歌搜索;结果总是落在Safari相关的列表上。

提前感谢!

2个回答

19

你可以使用颜色或图片。你可以添加一个视图来实现:

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

或者直接在窗口上设置背景颜色:

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

7
我部分地错误了。深入研究Xcode后,我发现UIWindow上实际上有一个backgroundColor属性。你可以跳过UIView这一步,只需执行以下代码即可: [[appDelegate window] setBackgroundColor:[UIColor blackColor]]; - Mike
12
可以在ApplicationDidFinishLanuching方法中加入以下代码:window.backgroundColor = [UIColor blackColor]; 这将使窗口背景颜色变为黑色。 - Brad The App Guy
1
我仍然得到白色。 - ichanduu
如果使用导航控制器中的一个,可能需要更改背景颜色。 - malhal

6

如果更容易的话,您也可以在IB中的MainWindow.xib上为Window设置背景颜色。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接