UIVisualEffectView在不同的设备上呈现不同的效果

在我的ViewController.swift

 var img = UIImageView(image: UIImage(named: "puddles")) img.frame = view.bounds; view.addSubview(img); var effect = UIBlurEffect(style: UIBlurEffectStyle.Light) var effectView = UIVisualEffectView(effect: effect) effectView.frame = CGRectMake(0, 0, 500, 500) view.addSubview(effectView) 

使用iPad AiriPhone 5iPhone 5S模拟器中的代码呈现的图像:

woof,看起来不那么好

使用以上代码在iPhone 4SiPad 2iPad Retina模拟器中呈现的图像:

我看不到我的公爵!

注意:上述两个图像均来自模拟器,但是也可以在运行iOS 8 Beta 1的实际设备上再现。

显然,我想在所有设备上实现第一个效果。 我怎样才能在所有设备上实现相同的第一个效果?

iOS 8中的UIVisualEffectView与iOS 7中的(以前的私有API)半透明和活力效果几乎相同。像iOS 7效果一样,它们在硬件上回退到graphics更简单的实现,无法呈现如此复杂的graphics效果实时。

我们最近遇到这个问题,当我们的开发者的机器上的视觉效果视图是一个丑陋的灰色。

 UIVisualEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; 

事实certificate,他们在iOS模拟器上启用了Low Quality Graphics Override 。 将此选项转回到“ Device Default可修复问题并显示一个很好的半透明视图。

iOS模拟器>菜单栏>debugging>graphics质量覆盖>设备默认值

iOS模拟器中的低质量图形覆盖选项