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 Air
, iPhone 5
或iPhone 5S
模拟器中的代码呈现的图像:
使用以上代码在iPhone 4S
, iPad 2
或iPad 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质量覆盖>设备默认值