2016-11-20 3 views
1

Я только что возобновил работу над проектом, над которым я в последний раз работал 4 года назад. В то время я использовал Xcode 3.2 и iPad 2. Теперь я нахожусь на Xcode 8.1 и iPad Air 2.UIScreen mainScreen bounds возвращает границы iPad 2 на iPad Air 2

Я могу легко создать и запустить проект с помощью Xcode 8.1, но есть что-то странное, когда вы получаете размер экрана с помощью

CGRect rect = [[UIScreen mainScreen] bounds]; 

возвращает 768x1024 пикселей на мой IPad 2 Air, который не может быть правдой, потому что родное разрешение IPad 2 воздуха является 1536x2048. 768x1024 - это разрешение iPad 2, моего старого устройства.

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

Итак, я предполагаю, что мой проект работает в каком-то режиме устаревания/совместимости, который пытается заставить приложение полагать, что он все еще работает на iPad 2 с разрешением 768x1024 вместо разрешения вдвое большего. Может ли быть так, или что объясняет это явление?

Итак, как я могу заставить это работать правильно? то есть как я могу получить bounds, чтобы вернуть 1536x2048 и остановить автоматическое масштабирование? Я уже просмотрел различные варианты в Xcode, но я не вижу ничего, что могло бы объяснить поведение, которое я вижу здесь. Моя цель развертывания установлена ​​прошивка 10.1, так что я не понимаю, почему мое приложение помещается в этом странном режиме унаследованного или что-то ...

+1

* "возвращает 768x1024 пикселей" * - Нет, она возвращает 768x1024 ** баллов **. Прочитайте документацию для свойства 'UIScreen bounds'. – rmaddy

ответ

1

Вы смущены здесь вы получаете правильные оценки здесь

CGRect rect = [[UIScreen mainScreen] bounds]; 

1536x2048 - это разрешение IPad Air 2, а не его размер экрана, т.е. iPad Air 2 поддерживает разрешение @ 2x.

Если вы будете проверять границы IPad Air 2, то вы получите 768x1024

+1

Это обычная путаница пикселей против очков. Вот еще одна ссылка stackoverflow, которая охватывает это более подробно. http://stackoverflow.com/questions/12019170/what-is-pixel-and-points-in-iphone – xdeleon