在iOS中检测iPhone的不同分辨率

时间:2014-01-20 11:50:17

标签: ios cocos2d-iphone

我在iOS中使用cocos2d

我在检测iphone5 resolution(1136*640)时遇到问题。

我正在使用代码:

CGRect screenBounds = [[UIScreen mainScreen] bounds];

当我们在iPhone模拟器(4英寸)上运行app时,它分别给出screenWidth和screnHeight-320,480

有人可以告诉我解决方案吗?

3 个答案:

答案 0 :(得分:1)

将此代码写入.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");
}

答案 1 :(得分:0)

您可以在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
}

答案 2 :(得分:-1)

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

               }
     }