如何以编程方式区分iPhone和iPhone(Retina 3.5英寸)?

时间:2013-09-17 05:14:16

标签: iphone ios xib

通过检查设备的高度,可以轻松检查设备是iPhone 5还是iPhone,如下所示

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

但是,我想知道,在进入其他身体 480身高之后,我想检查一下它的iPhone或iPhone视网膜?

怎么做?

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

iOS XIB

由于

4 个答案:

答案 0 :(得分:7)

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

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
    if ([[UIScreen mainScreen] scale] >= 2.0) {
        // retina
    }
    else {
        // not retina
    }
}

答案 1 :(得分:3)

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

#define IS_RETINA ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && ([UIScreen mainScreen].scale == 2.0))

答案 2 :(得分:1)

我想您必须检查屏幕是否响应scale消息,其值为2.0

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
    && 
    [[UIScreen mainScreen] scale] == 2.0) 
{
    //Retina
} 
else 
{
    //Not Retina
}

答案 3 :(得分:1)

使用此方法..

返回YES表示视网膜非视网膜,

+(BOOL)iPhoneRetina
{
    return ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) ;
}