可能重复:
Detect Retina Display
我们怎么知道设备是否有来自客观C代码的视网膜显示?
答案 0 :(得分:56)
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]
&& [[UIScreen mainScreen] scale] >= 2.0) {
// Retina
} else {
// Not Retina
}
答案 1 :(得分:5)
您可以查看scale
上的[UIScreen mainScreen]
属性,如果您在视网膜上运行是2.0,如果是1.0则不是。您还可以从当前的CoreGraphics Context获得比例。
答案 2 :(得分:-1)
我认为你不能直接确定。您必须从可以从sysctlbyname获取的模型信息中推断出它(请参阅iOS手册页)。例如:
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
会给你一个字符串,如“iPhone3,1”,它有一个视网膜显示,或“iPhone 2,1”没有。