1

可能重复:
如何区分 iphone4 和 iphone 3

好吧,我知道所有@2x 的东西,并且已经阅读了关于视网膜显示和高分辨率支持的其他 stackoverflow 线程和苹果参考资料,但无济于事。

我正在从支持分辨率请求参数的远程服务器加载图像。对于 iPhone4,我想请求更大分辨率的图像。

如何测试我是否在 iPhone 4 上?

在 UIDevice 上使用“模型”字段不是一个选项,因为我在模拟器中没有得到正确的值。

4

1 回答 1

4

我将此代码用于类似目的。

// Return YES if we're running on a device with a retina display.
BOOL hasRetinaDisplay(void)
{
        if([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
                return [[UIScreen mainScreen] scale] == 2.0 ? YES : NO;

        return NO;
}

UIScreen仅响应scale可以在具有视网膜显示器的设备上运行的 iOS 版本,因此如果 UIScreen 不响应比例,那么我们知道默认情况下没有视网膜屏幕。如果是,那么检查它的比例因子,1.0 是没有视网膜显示器,2.0 是 iPhone4。

于 2010-07-26T10:54:29.553 回答