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