视图控制器透明背景
Posted
技术标签:
【中文标题】视图控制器透明背景【英文标题】:View Controller Transparent Background 【发布时间】:2015-10-08 14:49:19 【问题描述】:如何创建一个具有透明背景的视图控制器,它覆盖另一个视图控制器,而在 ios 9 中底部视图控制器仍然可见?在 iOS 8 中的工作方式不再有效。
【问题讨论】:
@Lorenzo,您应该将其发布为答案,而不是评论。 @Lorenzo,我对“是的,但是......”感到困惑。答案很短吗? 【参考方案1】:首先您可以将覆盖视图控制器的背景颜色设置为透明色。
您可以使用 presentViewController 方法覆盖新的视图控制器。
来自苹果文档
当使用 UIModalPresentationFullScreen 样式呈现视图控制器时,UIKit 通常会在过渡动画完成后移除底层视图控制器的视图。您可以通过指定 UIModalPresentationOverFullScreen 样式来阻止删除这些视图。
因此您可以将覆盖视图控制器的 modalPresentationStyle 设置为 UIModalPresentationOverFullScreen
我也希望这可能会有所帮助
当使用其中一种全屏演示样式时,启动演示的视图控制器本身必须覆盖整个屏幕。如果呈现的视图控制器没有覆盖屏幕,UIKit 会遍历视图控制器层次结构,直到找到一个覆盖。如果找不到填充屏幕的中间视图控制器,UIKit 会使用窗口的根视图控制器。
【讨论】:
如果你使用了 UIPopoverController,它在 iOS9.0 中已被弃用 谢谢你,但这仍然不起作用。一旦视图控制器位于另一个控制器的顶部,底部视图就会消失,留下黑色背景。【参考方案2】:要解决这个问题,您只需更改视图的 Alpha 信息。要在其他视图之上获取此视图,请更改 ViewController 的转换样式。
【讨论】:
【参考方案3】:仅供参考:现在的语法是:
childVC.modalPresentationStyle = UIModalPresentationStyle.OverFullScreen
【讨论】:
我很困惑这与所提问题有何关系? 请扩展您的答案。 “语法”——什么?您的行实际上并没有创建视图控制器。也许再多几行代码就能阐明你的意思。以上是关于视图控制器透明背景的主要内容,如果未能解决你的问题,请参考以下文章
具有透明背景的模态 UISplitViewController