【问题标题】:View Controller Transparent Background视图控制器透明背景
【发布时间】:2015-10-08 14:49:19
【问题描述】:

如何创建一个具有透明背景的视图控制器,它覆盖另一个视图控制器,而在 iOS 9 中底部视图控制器仍然可见?在 iOS 8 中的工作方式不再有效。

【问题讨论】:

  • @Lorenzo,您应该将其发布为答案,而不是评论。
  • @Lorenzo,我对“是的,但是......”感到困惑。答案很短吗?

标签: ios swift ios9


【解决方案1】:

首先您可以将覆盖视图控制器的背景颜色设置为透明色。

您可以使用 presentViewController 方法覆盖新的视图控制器。

来自苹果文档

当使用 UIModalPresentationFullScreen 样式呈现视图控制器时,UIKit 通常会在过渡动画完成后移除底层视图控制器的视图。您可以通过指定 UIModalPresentationOverFullScreen 样式来阻止删除这些视图。

因此您可以将覆盖视图控制器的 modalPresentationStyle 设置为 UIModalPresentationOverFullScreen

我也希望这可能会有所帮助

当使用其中一种全屏演示样式时,启动演示的视图控制器本身必须覆盖整个屏幕。如果呈现的视图控制器没有覆盖屏幕,UIKit 会遍历视图控制器层次结构,直到找到一个覆盖。如果找不到填充屏幕的中间视图控制器,UIKit 会使用窗口的根视图控制器。

【讨论】:

  • 如果你使用了 UIPopoverController,它在 iOS9.0 中已被弃用
  • 谢谢你,但这仍然不起作用。一旦视图控制器位于另一个控制器的顶部,底部视图就会消失,留下黑色背景。
【解决方案2】:

要解决这个问题,您只需更改视图的 Alpha 信息。要在其他视图之上获取此视图,请更改 ViewController 的转换样式。

【讨论】:

    【解决方案3】:

    仅供参考:现在的语法是:

            childVC.modalPresentationStyle = UIModalPresentationStyle.OverFullScreen
    

    【讨论】:

    • 我很困惑这与所提问题有何关系?
    • 请扩展您的答案。 “语法”——什么?您的行实际上并没有创建视图控制器。也许再多几行代码就能阐明你的意思。
    猜你喜欢
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2021-04-28
    • 2011-02-24
    • 2016-01-11
    相关资源
    最近更新 更多