iOS Simulator имеет разную высоту экрана между ios 7.1 и ios 8.2 для одного и того же iPhone 5s

Симулятор iOS испытывает странную проблему при тестировании среды iOS 7.1 и iOS 8.2. Когда я пытаюсь получить размер экрана для iPhone 5s, результат отличается. это баг симулятора? или это разница между iOS 7 и iOS 8?

Большое спасибо за любой совет.

Мой код:

override func viewDidLoad() {
    super.viewDidLoad()

    println("Screen bounds: \(UIScreen.mainScreen().bounds)")

Симулятор iPhone 5s (8.2) выводит результат:

Границы экрана: (0,0,0,0,320,0,568,0)


Симулятор iPhone 5s (7.1) выводит результат:

Границы экрана: (0,0,0,0,320,0,480,0)

И есть верхняя и нижняя черные полосы, занимающие экран симулятора iOS 7.1.


person Roger Zhang    schedule 30.04.2015    source источник
comment
В iOS 8.x был представлен UIScreen.mainScreen().nativeBounds. Взгляните на это   -  person David 'mArm' Ansermot    schedule 30.04.2015
comment
Я думаю, что nativeBounds в iOS8 точно такое же, как bounds в предыдущих версиях iOS, поскольку bounds в iOS8 связано с ориентацией. Однако nativeBounds, похоже, не способствует странному поведению здесь. А как насчет других приложений, работающих в симуляторе 7.1? Если верхняя и нижняя черные полосы все еще существуют, я думаю, скорее всего, это ошибка симулятора. В противном случае вы можете проверить конфигурации вашего приложения для iOS7.1.   -  person Jinghan Wang    schedule 30.04.2015
comment
Я бы посоветовал вам использовать заставку, а затем запустить свой код. После использования всплеска проблема с черным банком будет решена, и вы также получите правильную высоту.   -  person iYoung    schedule 02.05.2015


Ответы (2)


iPhone 5s имеет дисплей с разрешением 640x1136 пикселей, что соответствует 2x Retina и, таким образом, 320x568 точек.

Ваши результаты 320x480, а также наличие почтового ящика соответствуют приложению, работающему в режиме совместимости на iPhone5s, поскольку оно соответствует размеру старых экранов.

person Jeremy Huddleston Sequoia    schedule 02.05.2015
comment
Привет Джереми, не могли бы вы дать мне дальнейшее объяснение? где найти наличие почтового ящика для режима совместимости? - person Roger Zhang; 03.05.2015
comment
Режим совместимости предоставляется UIKit для приложений, которые были разработаны для более старых устройств, чем те, на которых он работает в настоящее время (например, приложения для небольших экранов старых iPhone при работе на более новых iPhone или iPad). Система поместит их в почтовый ящик, чтобы сохранить точное соотношение сторон с первоначальным замыслом автора. В вашем случае система считает, что ваше приложение не оптимизировано для устройств размером с iPhone 5. - person Jeremy Huddleston Sequoia; 04.05.2015

Это связано с тем, что в iOS 8 размер экрана становится зависимым от ориентации, пожалуйста, проверьте этот поток ios8" title="Размер экрана iOS 8 становится зависимым от ориентации"> Размер экрана iOS становится зависимым от ориентации

person hariszaman    schedule 02.05.2015