在我的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的实际设备上重现。
显然,我想在所有设备上实现第一个效果。如何在所有设备上实现相同的第一效果?
答案 0 :(得分:26)
UIVisualEffectView
与iOS 7中的(以前的私有API)半透明和活力效果完全相同。就像iOS 7效果一样,它们可以回归到硬件上的图形更简单的实现不能实时渲染这种复杂的图形效果。
答案 1 :(得分:5)
最近,当我们的视觉效果视图在我们的某个开发人员的计算机上呈现出一种难看的灰色时,我们就遇到了这个问题。
UIVisualEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
事实证明他们已经在他们的iOS模拟器上启用了Low Quality Graphics Override
。将此选项恢复为Device Default
可修复问题并显示一个漂亮的半透明视图。
iOS模拟器>菜单栏>调试>图形质量覆盖>设备默认值