Новый 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 пикселей.
Это было бы лучшим решением? У меня есть другая альтернатива?
Извините за длинный текст. Любая помощь приветствуется!
Ответы
Ответ 1
На самом деле это исправление для старой ошибки. Ранние версии Xcode не обрабатывали строку состояния правильно, поэтому люди устанавливали параметр окна Y равным нулю. Правильное значение должно быть 20, вертикальная толщина строки состояния.
Я смутно помню, что в Interface Builder также есть параметр, который позволит вам указать, что должна отображаться строка состояния, которая добавит 20 к параметру Y. Это тоже не сработало.
Теперь, когда исправлена ошибка, все старые окна будут на 20 пикселей выше, чем они должны быть (в основном, под строкой состояния).
Консенсус на форумах Apple dev заключается в том, что Apple добавит способ указать поведение iOS6 и iOS7 в Interface Builder для устранения этой проблемы.