我在iOS中使用cocos2d
。
我在检测iphone5 resolution(1136*640)
时遇到问题。
我正在使用代码:
CGRect screenBounds = [[UIScreen mainScreen] bounds];
当我们在iPhone模拟器(4英寸)上运行应用程序时,它分别给出屏幕宽度和screnHeight-320,480
。
有人可以告诉我解决方案吗?
在.m文件中写入此代码。
#define WIDESCREEN ( fabs( ( double )[ [UIScreen mainScreen ]bounds ].size.height-( double )568 ) < DBL_EPSILON )
现在您可以知道这样的屏幕大小。
if(WIDESCREEN)
{
NSLog(@"iPhone5 is here");
}
else
{
NSLog(@"iPhone4 is here");
}
您可以在iPhone 4英寸屏幕和3.5英寸屏幕的代码中添加检查
CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 480)
{
// iPhone Classic
// set your frames for classic iPhone here
}
if(result.height == 568)
{
// iPhone 5, iPhone 5S, iPhone 5C
// set your frames for 4 inch iPhone here
}
iPhone 5分辨率仅为1136*640。如果您只想检查下面的日志
它将给出的分辨率(1136*640)
CGRect screenBounds = [[UIScreen mainScreen] bounds];
CGFloat screenScale = [[UIScreen mainScreen] scale];
CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);
NSLog(@"Screen SIze %@",NSStringFromCGSize (screenSize));
#define IS_IPHONE5 ([[UIScreen mainScreen] bounds].size.width >= 568 || [[UIScreen mainScreen] bounds].size.height >= 568)?YES:NO
#define IS_IPHONE4 ([[UIScreen mainScreen] bounds].size.width >= 480 || [[UIScreen mainScreen] bounds].size.height >= 480)?YES:NO
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
if(IS_IPHONE4)
{
// iPhone 4
}
if(IS_IPHONE5)
{
// iPhone 5
}
}