我正在使用UIVisualEffectView来模糊SpriteKit中的屏幕部分,如下所示:
let blur:UIBlurEffect = UIBlurEffect(style: UIBlurEffectStyle.Dark)
let UIEffectView:UIVisualEffectView = UIVisualEffectView(effect: blur)
UIEffectView.frame = CGRectMake(0, 0, frame.width, frame.height * 0.15)
self.view?.addSubview(UIEffectView)
但它显示为灰色阴影区域,而不是模糊区域。奇怪的是,当GameCenter的通知在开始时显示时,它变得模糊了,上面写着"欢迎回来,(玩家)"——但一旦通知消失,它又变成了一个灰色的盒子。
同样的情况也适用于当你进入iOS9中的多任务视图时,预览会模糊部分,但当你进入应用程序时,它会再次变为灰色阴影区域。
你知道为什么会这样吗?它在模拟器和物理硬件中也起到了同样的作用。
在使用UIVisualEffectView创建模糊视图之前,我也有同样的头痛,在模拟器上进行了更正,但在iphone&事实证明,当你把UIKit
和SpriteKit
混在一起时,会发生一些奇怪的事情。我建议使用SKEffectNode
来做模糊工作,而不是使用UIVisualEffectView
。