Приложение iOS9 имеет черные полосы сверху и снизу

В моем приложении не используется автоматическая компоновка, оно изначально было разработано для iPhone 4/4s, и с тех пор пользовательский интерфейс почти не изменился. Макет довольно минимален, поэтому переключение на автомакет не считается приоритетом.

Ранее созданное для iOS8, мое приложение корректно масштабировалось на iPhone 5 и новее, заполняя экран. Сам вид будет заполнять весь экран, а значки будут масштабироваться пропорционально (чтобы они не искажались). однако теперь кажется, что при использовании бета-версии iOS9 приложение получает черные полосы как сверху, так и снизу, и в основном отображается как масштабированное приложение iPhone 4, что приводит к черным полосам сверху и снизу.

В основном я хочу, чтобы он просто масштабировался, чтобы соответствовать полному экрану, так же, как это было в iOS8. Может ли кто-нибудь пролить свет на то, что изменилось, что вызвало эти черные полосы?

Я должен добавить, что если он собирается с использованием xcode 7 (ios9 xcode) и развертывает устройство с iOS8, он работает нормально, проблема заключается в развертывании на устройствах iOS9.

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


person xceph    schedule 31.08.2015    source источник
comment
Вы бы хоть скриншот добавили.   -  person Pavlo    schedule 31.08.2015
comment
При удаче? У меня есть ощущение, что это связано с отсутствующими изображениями запуска, но я не могу понять, какое из них нам не хватает! Кроме того, мы не используем «Файлы экрана запуска», поэтому заполнение поля в настройках проекта не поможет.   -  person Jeremy C.    schedule 15.09.2015
comment
Вы смогли это исправить?   -  person Goles    schedule 16.09.2015
comment
@ДжеремиС. посмотрите на мой ответ, я нашел обходной путь, чтобы решить эту проблему.   -  person Fantini    schedule 16.09.2015
comment
Мое исправление состояло в том, чтобы просто обновить все изображения, чтобы предоставить правильные 3-кратные изображения для нового 6/6S, ответ Джереми С предлагает рабочее решение для удаления черных полос.   -  person xceph    schedule 16.09.2015
comment
Используйте top и проблема с нижним пространством в xCode 6+ и iOS 9   -  person Himanshu Mahajan    schedule 16.12.2015
comment
Я думаю, что также есть шанс оформить в стиле презентации модели в помощнике редактора. У меня та же проблема, и я изменил стиль презентации, и это работает для меня.   -  person Mihir Oza    schedule 18.01.2016


Ответы (5)


@Fantina @Goles Мне удалось временно исправить это, создав и добавив файл [email protected] с разрешением 640x1136. Затем я обновил раздел «Значки приложений и изображения запуска», чтобы он выглядел следующим образом:

«Нет

Я не думаю, что это долгосрочное решение, потому что для совместимости с iOS9 и приложениями с разделенным экраном Apple требуется раскадровка или xib-файлы. Это затрудняет работу разработчиков, которые полагаются исключительно на программную генерацию/макет представления. УРА.

person Jeremy C.    schedule 16.09.2015
comment
Он отлично работает! Я много искал это!! Спасибо!! Протестировано на Xcode 7 со всеми устройствами на симуляторе с iOS 9, и это сработало! - person Leonardo Bortolotti; 17.09.2015
comment
В моем случае мне также нужно настроить Launch Screen File на MainStoryboard, чтобы убедиться, что он работает правильно. - person Evan Lin; 22.12.2015
comment
Работал на меня. За исключением того, что когда я изменил источник значков приложений (который был красным), появилось всплывающее окно о создании актива, а затем в «Источник изображений запуска» он позволил мне выбрать «Активы бренда». Джереми С., можешь подробнее рассказать о том, что ты написал? Мой AppDelegate выбирает корневой контроллер в зависимости от состояния. Я использую XIB, но не раскадровки и не хочу запускать какой-либо образ - приложение маленькое и нет никакой задержки в том, что пользователь видит первый корневой контроллер, поэтому я не вижу смысла прошивать какой-то образ для 10 РС... - person alpsystems.com; 09.04.2016
comment
Я не уверен, что вы сможете обойти требование отсутствия образа запуска. Я считаю, что это изображение используется в качестве перехода анимации просмотра, когда приложение открывается. Мое решение решает проблему предоставления изображения запуска без использования раскадровки... Я не думаю, что вы можете полностью исключить изображение запуска/раскадровку. - person Jeremy C.; 11.04.2016

У меня была точно такая же проблема, и это странно, я решил ошибку, и я действительно не знаю, почему мое решение помогает.

Добавьте Launch Screen File в свой проект (я скопировал один из другого более нового проекта), и все, теперь приложение снова использует весь экран.

Чтобы добавить Launch Screen File, сначала создайте файл xib, используйте UIView и заполните все, что хотите.

введите здесь описание изображения

Затем вам нужно выбрать проект в левой части экрана, выбрать цель приложения (не проект), на общей вкладке найти App Icons and Launch Images и поместить только что созданное имя xib в Launch Screen File.

введите здесь описание изображения

Проблема в том, что это активирует Size classes в интерфейсе приложения, поэтому вам нужно пересмотреть интерфейс вашего приложения, потому что масштабирование больше не работает.

PS: я использую Xcode 7.0 GM

person Fantini    schedule 16.09.2015
comment
Спасибо за это. Это немного смешно, что это должно быть сделано именно так, но это работает! Вы спасли меня от разбитой головы об стол :) - person Jason Wiener; 18.09.2015
comment
Мне знакомо это чувство, брат :) - person Fantini; 21.09.2015

У меня была аналогичная проблема, и я решил ее, настроив Main.storyboard в качестве файла экрана запуска на экране конфигурации приложения. Это заставило все экраны соответствовать всему экрану.

person Chema García    schedule 18.09.2015
comment
Лучшее решение! Работал отлично для меня. - person Björn; 29.09.2015

Вы можете добавить раскадровку LaunchScreen с помощью: File/New/File..., а затем в группе iOS выберите UserInterface/Launch Screen.

Затем выберите его в качестве экрана запуска для вашего приложения, как объяснено в ответе, данном Фантини. Это с Xcode 7.0

person Gael Jaffrain    schedule 22.09.2015
comment
Я пробовал это, но все еще получаю черный почтовый бокс на iPad. Выбранный файл -> Новый файл -> Пользовательский интерфейс -> Экран запуска. Затем добавил его в качестве экрана запуска в раскадровке. Не фиксированный. iOS 8, Xcode 7 - person noobsmcgoobs; 30.10.2015

Я столкнулся с этим после обновления до xcode 9. Интересно, что приложение выглядело нормально при работе на симуляторах, но показывало черную полосу внизу при работе на подключенном устройстве. В меню, выбрав продукт, а затем удерживая Option -> чистая папка сборки, я решил проблему.

person apricity    schedule 26.09.2017