如何修复我的[UIScreen主屏幕]将iPhone 5识别为iPhone 4

时间:2013-10-14 21:19:13

标签: iphone ios uiscreen

我正在测试一个xcode项目的iPhone 5和iPhone 4s。我在iPhone 5上删除了我的应用程序并重新构建它,现在它将iphone 5识别为iphone 4.我试过了两个

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    NSLog(@"screen size is %f", screenSize.height);
    if (screenSize.height > 480.0f) {
        return TRUE;
    } else {
        return FALSE;
    }
}

#define IS_WIDESCREEN ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
#define IS_IPHONE ( [ [ [ UIDevice currentDevice ] model ] isEqualToString: @"iPhone" ] )
#define IS_IPOD   ( [ [ [ UIDevice currentDevice ] model ] isEqualToString: @"iPod touch" ] )
#define IS_IPHONE_5 ( IS_IPHONE && IS_WIDESCREEN )

问题是以某种方式[UIScreen mainScreen] bounds.size.height识别我的屏幕高度为480.00000而不是586.有没有人遇到此错误,我该如何解决?

1 个答案:

答案 0 :(得分:2)

您的代码中必须有一个Default-568h@2x.png图像才能识别正确的屏幕高度,否则它将始终为FALSE。我在构建之间意外删除了这个图像,因此它从未正确测试过。