在 iOS 8 中呈现弹出框时如何使屏幕模糊

Posted

技术标签:

【中文标题】在 iOS 8 中呈现弹出框时如何使屏幕模糊【英文标题】:How do I get the the screen to Blur when presenting a popover in iOS 8 【发布时间】:2014-09-29 19:00:21 【问题描述】:

在 WWDC 2014 上的“ios8 中的 ViewController 进步”演讲中,在幻灯片 #114 上,它展示了在 iPhone 上显示 Popover 从底部向上滑动时,PresentationController 如何提供“变暗视图”。演讲中的示例源代码似乎不可用。

我想要的效果很简单:当弹出框向上滑动时,弹出框的背景是其后面内容的模糊“屏幕截图”。我想要的外观在幻灯片 #162 上。在幻灯片 #154 上,它表明方法“adaptivePresentationStyleForPresentationController”可用于将 UIVisualEffectView 添加到“呈现的视图控制器”以获得所需的效果。

我找不到一个简单的 Objective-C 示例来说明如何做到这一点。

任何帮助将不胜感激。

【问题讨论】:

你了解如何使用 UIPresentationController 吗?你了解如何提供自己的 UIPresentationController 吗? 【参考方案1】:

您可以在执行 segue 到覆盖 VC 之前将其添加到您正在演示的 VC 中,如下所示:

    let blurView = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.ExtraLight))
    blurView.frame = self.view.bounds
    self.view.addSubview(blurView)

【讨论】:

【参考方案2】:

这是来自 WWDC 的 Apple 示例代码。这个应用程序是关于演示控制器的。

https://developer.apple.com/library/ios/samplecode/LookInside/Introduction/Intro.html

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。【参考方案3】:

如果我正确理解您的问题,UIBlurEffect 上的这些信息可能会有所帮助。 仅适用于 iOS 8。

【讨论】:

以上是关于在 iOS 8 中呈现弹出框时如何使屏幕模糊的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 呈现已呈现的弹出框时应用程序崩溃

如何在 iOS 6 中使用 UIPopoverBackgroundView 呈现透明弹出框

当 UIViewController 显示弹出框时,更改 CALayer 颜色与 UIView tintColor 同步

仅当在 iOS 7 弹出框内使用视图时,如何使视图背景透明?

如何以编程方式关闭/禁用 iOS 11 中引入的屏幕截图弹出框?

iOS弹出框如何去除阴影