iPad3 с высоким разрешением дисплея сетчатки - PullRequest
3 голосов
/ 26 марта 2012

Я занимаюсь разработкой приложения для iPad3 (Retina Display) с использованием Xcode 4.2 [iOS SDK 5.0].Я использую следующий фрагмент кода для обнаружения дисплея сетчатки (с высоким разрешением).

 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 отображается вывод:

масштаб = 1,00000;

Дисплей без Retina для iPad 1 / 2.

Приведенный выше код не обнаруживает дисплей Retina.

Я перепробовал все коды, связанные с обнаружением дисплея сетчатки от Google, но все коды не смогли обнаружить дисплей сетчатки.Есть ли способ обнаружить дисплей сетчатки iPad 3.

Заранее спасибо.

Ответы [ 3 ]

9 голосов
/ 26 марта 2012

Чтобы ваше приложение поддерживало новый дисплей Retina для iPad, вам необходимо разработать и собрать его с использованием SDK 5.1 (что, я думаю, означает, что вам нужно использовать XCode 4.3).

8 голосов
/ 26 марта 2012
+ (BOOL)isRetina
{
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) {
        return YES;
    }
    return NO;
}

Я тестировал в iPad3, этот метод возвращает YES.

0 голосов
/ 26 марта 2012

Попробуйте заменить:

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

на

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

(я мог бы упустить момент, но если iPad3 имеет масштаб 1,0, то «> 1,0» неверно)

...