我想要实现UIVisualEffectView
来对一个视图应用模糊效果,以显示在它后面的视图。
需要被背景模糊的视图是嵌入在UINavigationController
中的UITableViewController
,并且它将被以iOS 8自适应Segue(呈现为弹出窗口)的形式在iPad上呈现,或者在iPhone上以全屏模态形式呈现。当此视图控制器处于弹出窗口中时,我希望背景可以模糊弹出窗口下方的内容,当以全屏幕方式呈现时,我希望能够使前一个视图控制器的背景模糊。
我已经尝试过实现这个功能,但没有成功。我甚至无法让弹出窗口的模糊效果起作用。我认为以下代码应该可以解决问题:
//In viewDidLoad on the UITableViewController subclass:
let effectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light))
effectView.frame = tableView.frame
tableView.addSubview(effectView)
我还尝试将子视图添加到tableView.backgroundView
,尝试将backgroundView
设置为我的effectView
,尝试使用Autolayout约束而不是设置框架,但是没有任何效果。你能帮我实现想要的行为吗?
我想要达到的示例:
iPad 弹出窗口:
iPhone 模态呈现: