使用UIVisualEffectView创build一个模糊视图,在模拟器上正确,但不是在iPhone和iPad上
目标:在应用程序中创build模糊视图。
我使用的代码是:
func createBlurBackgroundView() { if !UIAccessibilityIsReduceTransparencyEnabled() { if blurredSubView == nil || blurredSubView.superview == nil { print("Create blurred background view") self.backgroundColor = UIColor.clearColor() let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light) blurredSubView = UIVisualEffectView(effect: blurEffect) blurredSubView.frame = self.bounds self.insertSubview(blurredSubView, atIndex: 0) } } else { print("Transparency disabled!! no blur view") } }
结果是:在模拟器上的一切工作正常:
但是当我在iphone和ipad上运行它时,它看起来像:
请注意我没有改变“降低透明度”的设置!
那么当我想拍摄这个黑色的背景而不模糊的时候,你猜怎么着? 在照片stream中,我看到了正确的模糊视图图片…
此外,当我双击主页button,并看看多任务接口,我看到了模糊视图效果!
更多信息:我使用的是iPhone6s,两者都是iOS 9.3.1 Xcode版本7.3
我试图解决这个问题,我很累,我尝试了其他方法,如拍摄快照图像,然后对图像应用模糊效果,但有其他错误和其他CONs
UIVisualEffectView
不适用于SpriteKit
。 我不知道他们在后面做了什么不同,如果有人知道,请随时编辑答案。 我的猜测是底层的实现使用了不起作用的不同的API。 模拟器做各种技巧来模拟实际的设备,所以他们可能会使用与真实设备不同的东西,这就是为什么它可以在模拟器上工作。
取出self.backgroundColor = UIColor.clearColor()。