在 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 中呈现弹出框时如何使屏幕模糊的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 6 中使用 UIPopoverBackgroundView 呈现透明弹出框
当 UIViewController 显示弹出框时,更改 CALayer 颜色与 UIView tintColor 同步
仅当在 iOS 7 弹出框内使用视图时,如何使视图背景透明?