代码之家  ›  专栏  ›  技术社区  ›  Duaan

如何通过编程区分iPhone和iPhone(Retina 3.5英寸)?[副本]

  •  2
  • Duaan  · 技术社区  · 11 年前

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

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

    然而,我想知道,在进入其他身体后 480高度 ,我想检查一下是iPhone还是iPhone视网膜?

    怎么能做到呢?

    我的主要目标是设置导航,正如我在另一个问题中所给出的那样

    iOS XIB

    谢谢

    4 回复  |  直到 7 年前
        1
  •  7
  •   Denis Kozhukhov    8 年前

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

    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
        if ([[UIScreen mainScreen] scale] >= 2.0) {
            // retina
        }
        else {
            // not retina
        }
    }
    
        2
  •  3
  •   Prasad_R    11 年前

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

    #define IS_RETINA ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] && ([UIScreen mainScreen].scale == 2.0))
    
        3
  •  1
  •   rano    11 年前

    我想你必须检查屏幕是否对 scale 消息及其值为 2.0

    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
        && 
        [[UIScreen mainScreen] scale] == 2.0) 
    {
        //Retina
    } 
    else 
    {
        //Not Retina
    }
    
        4
  •  1
  •   Dharmbir Singh    11 年前

    使用此方法。。

    返回YES表示其视网膜,否则为非视网膜,

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