2

我有 iphone 应用程序,到目前为止,我成功地检查了 iphone 5,代码如下(在我的 Prefix.pch 文件中):

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

现在,当我在 iPhone 5 上运行时,我在日志中得到这个高度:480 ([[UIScreen mainScreen] bounds].size.height)

我已经在 iOS 7 上更新了我的 iPhone。是否有其他方法可以检查是否是 iPhone 5(或屏幕高度)?

更新:我有我的 MAC OSX 10.8.5

更新 2: 我发现该项目中存在一些错误,因为当我创建新项目时,所有示例代码都可以工作。

4

3 回答 3

3

我刚刚测试了这段代码,它可以检查 iPhone 5 & 4 和 iOS 7 只是一堆讨厌的嵌套 If 语句!

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
        if ([[UIScreen mainScreen] respondsToSelector: @selector(scale)]) {
            CGSize result = [[UIScreen mainScreen] bounds].size;
            CGFloat scale = [UIScreen mainScreen].scale;
            result = CGSizeMake(result.width * scale, result.height * scale);

            if(result.height == 960){
                NSLog(@"iphone 4, 4s retina resolution");

                //CODE IF IPHONE 4

                if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
                    //Code if iPhone 4 or 4s and iOS 7
                    NSLog(@"iPhone 4 iOS 7");
                }
            }
            if(result.height == 1136){
                NSLog(@"iphone 5 resolution");

                //CODE IF iPHONE 5

                if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
                    //Code if iPhone 5 or 5s and iOS 7
                    NSLog(@"iPhone 5 iOS 7");
                }
            }
        }
    }
于 2013-09-21T14:40:27.693 回答
2

用这个 :

bool isFourInches = CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size,CGSizeMake(640, 1136));

isFourInches如果设备有 4 英寸显示屏,则为“是”,它可能是 iPhone 5、5s 或 5c...

于 2013-09-21T14:42:02.573 回答
0

试试下面的条件...

 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0){   

     NSLog(@"iOS 7");          
 }
于 2013-12-06T07:02:44.340 回答