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

Rob*_* S. 14 iphone uiview uiviewanimation uiviewanimationtransition

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

[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]; 
Run Code Online (Sandbox Code Playgroud)

以Apple为荣,这种动画风格非常容易使用.非常酷,我已经能够非常轻松地在整个应用程序中设置转换,翻转,淡入淡出等动画.

问题:在翻转过渡期间,翻转过程中两个视图后面可见的背景是白色的,我希望它是黑色的.我有:

  • 设置包含视图的背景(self.view上图) - 没有骰子.我真的认为这会奏效.
  • 将每个视图的背景设置为黑色 - 没有骰子.我不认为这会起作用,虽然你给出了不同的东西,以便更好地理解:)
  • 谷歌疯了; 继续登陆Safari相关的列表.

提前致谢!

Mik*_*ike 18

您可以使用颜色或图像.您可以添加视图来执行此操作:

UIWindow *window = [appDelegate window];
UIView *bgView = [[UIView alloc] init];
[bgView setBackgroundColor:[UIColor blackColor]];
[window addSubView:bgView];
Run Code Online (Sandbox Code Playgroud)

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

[[appDelegate window] setBackgroundColor:[UIColor blackColor]];
Run Code Online (Sandbox Code Playgroud)

  • 或者只是在ApplicationDidFinishLanuching中执行:使用简单的window.backgroundColor = [UIColor blackColor]; (12认同)
  • 我错了.深入研究xcode,UIWindow上实际上有一个backgroundColor属性.您可以跳过UIView步骤.只做[[appDelegate window] setBackgroundColor:[UIColor blackColor]]; (7认同)

小智 5

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