2010-07-26 4 views
1

Можно создать дубликат:
How to differentiate between iphone4 and iphone 3iPhone 4 640x960

Ну, я знаю, что вся @ 2x вещь и уже прочитал другой StackOverflow нити и ссылку яблока относительно сетчатки дисплея и высокого разрешения поддержка безрезультатно.

Я загружаю изображение с удаленного сервера, который поддерживает параметр запроса разрешения. Для iPhone4 я хочу запросить изображение большего разрешения.

Как проверить, если я на iPhone 4?

Использование поля «model» в UIDevice не является вариантом, потому что я не получаю правильное значение в симуляторе.

ответ

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 на версии прошивки, которые могут работать на устройствах с дисплеями сетчатки глаза, так что если UIScreen не реагирует на масштаб, то мы знаем, по умолчанию, не экран сетчатки глаза. Если это так, то проверьте его масштабный коэффициент, 1.0 не отображает сетчатки, 2.0 - iPhone4.

+0

Конечно, UIScreen, как я не думал об этом. Благодарю. –

+0

Если вам нужна проверка в разных местах вашего кода, вы можете поместить вышеуказанный код в категорию UIScreen, а затем просто вызвать: [[UIScreen mainscreen] isRetina], например. – 2011-06-07 11:18:57

 Смежные вопросы

  • Нет связанных вопросов^_^