如何推送清除或alpha UIViewCotroller

时间:2015-05-14 11:56:33

标签: ios controller push clear

UIViewController VC1中的一个按钮,从这个按钮,我们需要推送(不存在)一个UIViewController VC2,而VC2的backgroundColor是clearColor或带有alpha。

也许有人会回答我:只是setBackgroundColor [UIColor clearColor],如果这样,VC2会在推动时清晰或带有alpha,但在动画完成后,它的backgroundColor将是黑色或白色奇怪的,那个& #39;我的疑问。我只想在VC1上方使用VC2,从VC1我可以看到VC1,只是推送不存在!

4 个答案:

答案 0 :(得分:1)

您应该使用以下代码:

[viewController2.view setBackgroundColor:[UIColor clearColor]];

答案 1 :(得分:0)

按下新的视图控制器将导致第一个视图控制器的视图从显示中移除。设置第二个视图控制器的背景颜色无济于事。

您可能需要将叠加层管理为第一个视图控制器视图的子视图。

答案 2 :(得分:0)

“呈现”视图控制器意味着将一个视图控制器显示在另一个视图控制器上。 “推送”视图控制器意味着将一个视图控制器替换为另一个视图控制器。如果你想保持另一个视图控制器,你必须提出新的控制器,而不是推它。

如果通过“推”意味着“从右侧滑入”,那么您的确意味着您希望通过自定义转换呈现它。这通常在iOS 8中使用UIPresentationController完成。在iOS 7中,您可以使用UIViewControllerTransitioningDelegate手动执行此操作,以提供所需的动画。

你应该看一下Ash Furrow的Custom UIViewController Transitions,以便对iOS 7方式进行一个很好的介绍。通过"Custom presentations using UIPresentationController in Swift"很好地覆盖了iOS 8(在Swift中)。

答案 3 :(得分:0)

好的,终极解决方案: 从VC1推送到VC​​2,VC1就这样做了:

步骤1,     [VC1 addChildViewController:VC2];     [VC1.view addSubview:VC2.view];     [VC1 didMoveToParentViewController:self]; SETP2,     VC2 setBackgroundColor clearColor或alpha。