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



我在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
               }
     }       

最新更新