了解设备类型 - 视网膜/非视网膜

Abh*_*nav 11 iphone cocoa-touch objective-c ios

可能重复:
检测视网膜显示

我们怎么知道设备是否有来自客观C代码的视网膜显示器?

Sta*_*glo 56

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
    && [[UIScreen mainScreen] scale] >= 2.0) {
    // Retina
} else {
    // Not Retina
}
Run Code Online (Sandbox Code Playgroud)

  • 现在应该> = 2.0(iPhone 6/6 +) (2认同)

Gor*_*tch 5

如果你在视网膜上运行2.0,你可以检查scale属性[UIScreen mainScreen],如果它是1.0你不是.您还可以从当前的CoreGraphics上下文中获取比例.

  • 如果用户在iOS <4上运行它,应用程序将崩溃 (2认同)
  • 正确.这就是为什么要首先检查[[UIScreen mainScreen] respondsToSelector:@selector(scale)]是否为真.这是您如何编码以确保向后兼容性的一般概念. (2认同)