我正在使用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视网膜显示器。
提前谢谢。
答案 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'不正确)