[UIScreen mainScreen].scale всегда возвращает 2 для устройств без Retina

Использование xcode 5.1.1 с ios 7.1 для создания приложения только для iPhone.

При запуске этого приложения на любом устройстве, не являющемся сетчаткой (ipad mini, simulator, ipad 2), [UIScreen mainScreen].scale всегда возвращает 2, в результате чего я не могу определить, нахожусь ли я на экране сетчатки.

Это противоречит всем другим постам о проверке сетчатки ( Detect Retina Display)

У кого-нибудь есть альтернативный метод, кроме проверки по списку жестко закодированных устройств?

1 ответ

Решение

Кажется, единственный способ - проверить идентификаторы платформы.

Я реализовал это здесь: https://gist.github.com/izackp/2ee0ca4b6c731b254e55

Тем не менее, он не является точным в симуляторе, так как я не получаю уникальный идентификатор, основанный на используемом симуляторе, и он не будет работать для будущих устройств, которые используют ресурсы сетчатки и имеют дисплей без сетчатки.

Другие вопросы по тегам