2

通过检查设备的高度很容易检查设备是 iPhone 5 还是 iPhone,如下所示

if([UIScreen mainScreen].bounds.size.height == 568){
    // iPhone 5
} else{
    // Regular iPhone
}

但是,我想知道,在进入 else body 480 height之后,我想检查它的 iPhone 还是 iPhone 视网膜?

怎么能这样做?

我的主要目标是设置导航,如我的另一个问题中所述

iOS XIB

谢谢

4

4 回答 4

7

如果你真的需要这个,你可以使用这样的东西:

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
    if ([[UIScreen mainScreen] scale] >= 2.0) {
        // retina
    }
    else {
        // not retina
    }
}
于 2013-09-17T05:21:01.010 回答
3

在 pch 文件中定义为宏,如下所示

#define IS_RETINA ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && ([UIScreen mainScreen].scale == 2.0))
于 2013-09-17T05:24:38.637 回答
1

我猜你必须检查屏幕是否响应scale消息并且它的值是2.0

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
    && 
    [[UIScreen mainScreen] scale] == 2.0) 
{
    //Retina
} 
else 
{
    //Not Retina
}
于 2013-09-17T05:18:21.653 回答
1

用这个方法。。

返回 YES 表示它的视网膜,否则非视网膜,

+(BOOL)iPhoneRetina
{
    return ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) ;
}
于 2013-09-17T05:18:40.027 回答