Подтвердить что ты не робот

Новый iOS 7 statusBar оставляет диапазон 20px в приложениях, скомпилированных в Xcode 5

на этой неделе вышел бета-версия iOS 7, и всякий раз, когда появляется обновление, всегда приходится обновлять приложения для совместимости, чтобы скомбинировать некоторые ошибки.

Ну, я установил iOS 7 на свой iPhone и принцип приложений работал отлично, затем установил Xcode 5 (предварительный просмотр) и скомпилировал мои проекты, я понял, что новый statusBar теперь полностью спокоен, ваш контроллер представлений будет отображаться как ее фон.

Здесь возникает проблема: белая полоса 20 пикселей в нижней части экрана, из-за того, что контроллер просмотра выиграл пространство, которое когда-то было StatusBar.

Если я исправлю эту проблему в своих раскадках, все в порядке, но тогда проблема в iOS 6 из-за 20px statusBar там все еще есть, и экран будет отключен.

Я думал, что простым решением было проверить версию iOS при запуске и создать раскадровку по каждому из них. В моем проекте у меня есть 3 раскадровки, iPhone 3.5 ',' iPhone 4 'и' iPad '. Скоро нужно создать еще 3 раскадровки, потому что эти 20 пикселей.

Это было бы лучшим решением? У меня есть другая альтернатива?

Извините за длинный текст. Любая помощь приветствуется!

4b9b3361

Ответ 1

На самом деле это исправление для старой ошибки. Ранние версии Xcode не обрабатывали строку состояния правильно, поэтому люди устанавливали параметр окна Y равным нулю. Правильное значение должно быть 20, вертикальная толщина строки состояния.

Я смутно помню, что в Interface Builder также есть параметр, который позволит вам указать, что должна отображаться строка состояния, которая добавит 20 к параметру Y. Это тоже не сработало.

Теперь, когда исправлена ​​ошибка, все старые окна будут на 20 пикселей выше, чем они должны быть (в основном, под строкой состояния).

Консенсус на форумах Apple dev заключается в том, что Apple добавит способ указать поведение iOS6 и iOS7 в Interface Builder для устранения этой проблемы.