iPad3高分辨率视网膜显示问题

时间:2012-03-26 10:44:43

标签: objective-c ios ipad xcode4.2 retina-display

我正在使用Xcode 4.2 [iOS SDK 5.0]为iPad3(Retina Display)开发应用程序。我正在使用以下代码片段来检测视网膜(高分辨率)显示。

 if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) 
{
NSLog(@"scale = %f",[[UIScreen mainScreen] scale]);
if ([[UIScreen mainScreen] scale] > 1.0) {
    NSLog(@"Retina Display iPad3");
} 
else    
{
    NSLog(@"Non Retina Display iPad 1/2");
}
}

当我在iPad3设备上安装应用程序时,它显示输出:

scale = 1.00000;

非Retina Display iPad 1/2。

以上代码未检测到Retina显示。

我已经尝试了所有与谷歌视网膜显示器检测相关的代码,但所有代码都未能检测到视网膜显示。 有没有办法检测iPad 3视网膜显示器。

提前谢谢。

3 个答案:

答案 0 :(得分:9)

要让您的应用支持新的iPad视网膜显示器,您需要开发和构建5.1 SDK(我认为您需要使用XCode 4.3)。

答案 1 :(得分:8)

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

我已在iPad3中测试过,此方法返回YES

答案 2 :(得分:-1)

尝试更换:

if ([[UIScreen mainScreen] scale] > 1.0) {

通过

if ([[UIScreen mainScreen] scale] >= 1.0) {

(我可能会忽略这一点,但如果iPad3的比例为1.0,则'> 1.0'不正确)