我的应用程序利用UIVisualEffectView来模糊背景,就像Control Center一样.但是我发现可以运行iOS 8的iPad 2(和Retina iPad)不够强大,不足以显示这种效果,因此它恢复为灰色.我想能够检测到应用程序运行的设备是否足够强大,可以显示模糊效果,如果不是,我将不会应用它,而是将背景颜色更改为看起来比那灰色.但我不想只是检查该设备是iPad 2还是iPad第3代(它是否也影响第四?).有没有更好的方法来检测UIBlurEffect是否会按预期显示?
解决方法
检查这个WWDC会话:
http://asciiwwdc.com/2014/sessions/419
So,and to reiterate on what devices we don’t blur and that we only do the tinting on the iPad 2 and iPad 3rd generation,we just apply the tint and we skip the blur steps.
[…]
On iPad 4th generation,iPad Air,iPad Mini,iPad Mini with retina display,iPhones and the iPod touch we do both the blur and the tinting.
我想你必须要求检查机器名称:
#import <sys/utsname.h> ... struct utsname systemInfo; uname(&systemInfo); NSString *deviceName = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; ...