8

如何检查应用程序是否在 iPhone 5 上运行然后执行某些操作?

4

6 回答 6

18
#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

然后在代码中:

if (IS_IPHONE_5) { 
   //is iphone 5
}
于 2012-11-05T21:13:34.070 回答
12

您可能关心窗口大小,而不是品牌/型号,这会:

CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
if (screenRect.size.height == 568)
{
 // this is an iPhone 5+
}
于 2012-11-05T21:12:36.413 回答
3

您可以通过检查屏幕分辨率来做到这一点,也可以使用以下方法来做到这一点:

#import "sys/utsname.h"

它为您提供每个设备的标识符。只需在此处查看我的答案:识别设备

于 2012-11-05T21:47:11.640 回答
3

使用屏幕很好。

#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 检查

于 2013-04-19T14:06:02.287 回答
0

我们可以直接将此方法放在常量文件中,并且可以在任何使用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 )
于 2013-03-14T10:21:15.787 回答
-11

您可以检查您设备的 iOS 版本,如果是 6.0,那么它是 iPhone 5 .....

这是代码..

double osVersion = [[[UIDevice currentDevice] systemVersion] doubleValue];
NSLog(@"OSVersion: %f", osVersion);
if (osVersion == 6.0) 
{
  //Paste your code here.....
}
于 2012-11-05T23:35:22.737 回答