Xcode+;Swift-仅当设备使用iOS 8时才具有某些元素
我正在制作一个游戏,但我没有意识到我将目标设备设置为iOS 8。我把它改成了iOS 7,这样它就可以与更多的设备兼容了。然而,在iOS 7上测试时,我意识到UIVisualEffectView不起作用。我是否可以让UIVisualEffect视图仅在运行的设备具有iOS 8而非iOS 7时显示?签出。您可以使用中的一个宏获取当前的iOS版本,然后决定使用哪个类。例如:Xcode+;Swift-仅当设备使用iOS 8时才具有某些元素,ios,xcode,ios7,swift,compatibility,Ios,Xcode,Ios7,Swift,Compatibility,我正在制作一个游戏,但我没有意识到我将目标设备设置为iOS 8。我把它改成了iOS 7,这样它就可以与更多的设备兼容了。然而,在iOS 7上测试时,我意识到UIVisualEffectView不起作用。我是否可以让UIVisualEffect视图仅在运行的设备具有iOS 8而非iOS 7时显示?签出。您可以使用中的一个宏获取当前的iOS版本,然后决定使用哪个类。例如: #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
// Use UIVisualEffectViewClass
} else {
// Use another class
}
如果您使用的是swift,请忽略宏部分,只使用代码。您可以检查
UIVisualEffectView
是否可用,如下所示:
if (NSClassFromString("UIVisualEffectView") != nil) {
NSLog("UIViewVisualEffectView is available");
// Use UIVisualEffectView
} else {
NSLog("UIViewVisualEffectView is not available");
// Do something else
}
这种方法很好,因为代码记录了使用
if
语句的原因,并且您不必记住引入类时的操作系统版本。请阅读文档中的“SDK兼容性指南”。它涵盖了这一点。哦,等等,这实际上只包括Objective-C。互操作性文档讨论了如何检查可选/新功能。如何创建UIVisualEffectView
?如果是代码,给我们看代码。