如何检查设备是iPhone 5?
我怎样才能检查一个应用程序运行在iPhone 5上,然后做些什么?
你可能会关心窗口大小,而不是制造/模型,这将做到:
CGRect screenRect = [[UIScreen mainScreen] applicationFrame]; if (screenRect.size.height == 568) { // this is an iPhone 5+ }
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
然后在代码中:
if (IS_IPHONE_5) { //is iphone 5 }
您可以通过检查屏幕分辨率来做到这一点,或者您可以使用以下方法:
#import "sys/utsname.h"
它给你每个设备的标识符。 在这里看到我的答案: 识别设备
使用屏幕是好的。
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) #define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0f)
没有epsilon检查是必需的
我们可以直接把这个方法放在常量文件中,并可以使用任何使用define的地方
#define ISIPHONE5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON ) #define HEIGHT (ISIPHONE5 ? 60:145)
或者可以使用
#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES)
我们也可以通过下面的方式检查IOS
#define IOS_OLDER_THAN_6 ([[[UIDevice currentDevice] systemVersion] floatValue] < 6.0 ) #define IOS_NEWER_OR_EQUAL_TO_6 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0 )
你可以检查你的设备的iOS版本,如果是6.0,那么它的iPhone 5 …..
这是代码
double osVersion = [[[UIDevice currentDevice] systemVersion] doubleValue]; NSLog(@"OSVersion: %f", osVersion); if (osVersion == 6.0) { //Paste your code here..... }