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

Posted

技术标签:

【中文标题】如何修复我的 [UIScreen 主屏幕] 将 iPhone 5 识别为 iPhone 4【英文标题】:How to fix my [UIScreen mainscreen] recognizing iPhone 5 as iPhone 4 【发布时间】:2013-10-14 21:19:12 【问题描述】:

我有一个 iPhone 5 和一个 iPhone 4s,我正在测试一个 xcode 项目。我在 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】:

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

【讨论】:

以上是关于如何修复我的 [UIScreen 主屏幕] 将 iPhone 5 识别为 iPhone 4的主要内容,如果未能解决你的问题,请参考以下文章

屏幕外信息的安全性如何?

主屏幕尺寸总是320x480?

双击按钮时如何修复颤振中的多个导航

UIScreen 是不是有屏幕开启通知?

iOS8.0(和 8.1)上第二个 UIScreen 的自动旋转问题

将 iOS 设备上的触摸发送到另一个 UIScreen(外部显示器)