Черные полосы вверху и внизу симулятора iPhone X

Запуская свое приложение в iPhone X Simulator (GM Seed), я заметил два странных эффекта:

  • приложение не использует все пространство экрана (верхняя и нижняя области черные)
  • странная белая полоса под заголовком

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

Кто-нибудь знает, что здесь происходит и как это решить? Я не могу найти никаких новых настроек в Интерфейсном Разработчике.


person Darko    schedule 12.09.2017    source источник
comment
Вы используете файл экрана запуска или изображения запуска? Вы используете автоматический макет?   -  person rmaddy    schedule 12.09.2017
comment
Запуск изображений и автоматический макет   -  person Darko    schedule 12.09.2017
comment
Почему вы используете старые изображения запуска вместо гораздо более простого файла экрана запуска? В любом случае, вы добавили новое изображение для запуска, необходимое для нового размера экрана?   -  person rmaddy    schedule 12.09.2017
comment
Я не могу найти изображение запуска для iPhone размера X. Но использование стартового экрана решило обе проблемы. Пожалуйста, отредактируйте свой ответ, и я помечу его как ответ. Спасибо!   -  person Darko    schedule 12.09.2017
comment
PS: Есть веская причина для использования изображений lauch до сих пор, это сложно объяснить. В основном я расширяю отображение изображения запуска до тех пор, пока не закончится начальная сетевая загрузка начального контроллера просмотра. Чтобы сразу представить пользователю контент без индикатора загрузки. И до сих пор это работало отлично, я не видел причин менять это. Но теперь я должен это изменить.   -  person Darko    schedule 12.09.2017
comment
Я только что создал новый образец проекта iOS с Xcode 9GM, и есть слоты для изображения запуска iPhone X. Возможно, вам потребуется добавить новый актив изображения запуска, чтобы увидеть новые слоты iPhone X.   -  person rmaddy    schedule 13.09.2017
comment
НЕ ДОЛЖНЫ ИСПОЛЬЗОВАТЬСЯ изображения для запуска. ИСПОЛЬЗУЙТЕ Launch Screen.storyboard вместо   -  person onmyway133    schedule 13.09.2017
comment
Я использую раскадровку экрана запуска (UIImageView с настройкой AspectFill), но у меня такая же проблема с iPhone X. При запуске приложения - ›верх и низ белые.   -  person sabiland    schedule 17.09.2017
comment
@sabiland Вы пользуетесь панелями навигации? Автоматический макет? Безопасные районы?   -  person Darko    schedule 17.09.2017
comment
Да, оба. Раскадровка экрана запуска + UIImageView (AutoLayout закреплен в безопасной области). У меня проблемы с черной полосой возникают только на iPhone X при запуске приложения. После запуска приложения все в порядке.   -  person sabiland    schedule 18.09.2017
comment
Вы уверены, что LaunchScreen действительно используется? Попробуйте добавить ярлык и посмотрите, появится ли он.   -  person Darko    schedule 18.09.2017
comment
Да, я уверен на все 100% :). Только на iPhone X проблема при запуске приложения с раскадровкой экрана запуска.   -  person sabiland    schedule 19.09.2017
comment
Кому-нибудь удалось использовать полноэкранную область iPhoneX со сборкой iOS 10 Base SDK? Когда был выпущен iPhone 4, использование дополнительной области требовалось только для добавления Default-568h.png независимо от базового SDK.   -  person Nikhil Mathew    schedule 29.10.2017
comment
Не пробовал. Но пробовали ли вы просто использовать экран запуска в iOS 10 SDK вместо изображений запуска?   -  person Darko    schedule 29.10.2017


Ответы (10)


При использовании изображений запуска (вместо гораздо более простого файла экрана запуска) вам необходимо предоставить изображение запуска правильного размера для каждого размера устройства, которое вы хотите поддерживать. После добавления дополнительного изображения для запуска ваше приложение должно использовать преимущества нового размера экрана.

Для нового iPhone X требуется изображение запуска размером 1125 × 2436 пикселей, что является 3-кратным изображением размером 375 × 812 пикселей.

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

person rmaddy    schedule 12.09.2017
comment
Можете ли вы подробнее рассказать, как интегрировать новое изображение iphoneX в экран запуска? Любые наборы изображений, которые я добавляю в Xcode 9, не имеют слотов iphoneX, только наборы изображений для запуска. - person Christian Cerri; 13.09.2017
comment
@ChristianCerri Наборы изображений не привязаны к устройствам. Они просто дают вам варианты 1x, 2x и 3x. Я имел в виду запускать изображения. Это единственные изображения для конкретных устройств. Если у вас есть вопрос о добавлении изображений разного размера на экран запуска, опубликуйте свой собственный вопрос, относящийся к этой проблеме. - person rmaddy; 13.09.2017
comment
просто сделал, как вы просили: stackoverflow.com/ questions / 46191522 / - person Christian Cerri; 13.09.2017
comment
Как, черт возьми, запускать изображения, связанные с черной полосой, сверху и снизу симулятора iPhone X ??! - person TomSawyer; 23.09.2017
comment
@TomSawyer Если ваше приложение не использует раскадровку экрана запуска, то изображения запуска определяют, какие размеры экрана поддерживает ваше приложение. - person rmaddy; 23.09.2017
comment
Он работает, только проблема в том, что моя панель навигации не отображается должным образом. - person Mihir Oza; 10.10.2017
comment
См. Ответ от @sabiland, если вы все еще видите черные полосы и используете экран запуска. Было бы здорово, если бы этот ответ можно было дополнить лакомым кусочком о том, как правильно спроектировать экран запуска для iPhone X. - person Crashalot; 09.11.2017
comment
Некоторые из нас работают для клиентов, которые отказываются внедрять новые системы. Конечно, я согласен, это намного проще и предпочтительнее, но у всех нас нет выбора. - person mxcl; 05.12.2017
comment
@rmaddy, у меня есть устаревший код, который использует автоматическое изменение размера и создан для iPhone 5 и масштабируется для iPhone 6 и 6 Plus, но не масштабируется для iPhone X, а сверху и снизу экрана отображается черное пространство. Не могли бы вы рассказать мне, есть ли способ масштабирования на iPhone X или это невозможно для масштабирования приложения для iPhone X. - person Chirag Bhutani; 24.05.2018

Я выяснил эти проблемы в iPhone X. Размер изображения для запуска (1125 * 2436 пикселей). Выполните следующие шаги. 1.i) Выберите имя проекта в Xcode. ii) Выберите цель проекта iii) Затем выберите Источник изображений для запуска  введите описание изображения здесь

  1. Вы можете получить всплывающее окно Migrate i) Выберите активы ii) Выберите Migrate.

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

  1. После этого выберите свои Assets.xcassets в своем проекте  введите описание изображения здесь

  2. Затем выберите «Запустить изображение в ресурсах». I) Затем выберите инспектор атрибутов  введите описание изображения здесь

  3. наконец, проверьте источник изображения запуска. вы можете увидеть установленное изображение запуска.

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

person Karthick C    schedule 25.10.2017
comment
Проголосовал за фотографии. Но вам следует убрать текст LaunchScreen Text из текстового поля Launch Screen File на последнем изображении. - person NadtheVlad; 28.10.2017
comment
Спасибо @NadtheVlad. Удалите текст LaunchScreen из файла экрана запуска и удалите файл LaunchScreen.Storyboard из Xcode. - person Karthick C; 31.10.2017
comment
Спасибо! Это был флажок в альбомной ориентации из Launch Image, который вызывал проблему, поскольку мое приложение работает только в портретной ориентации. - person green0range; 04.01.2018
comment
Спасибо, возникла та же проблема, и мы решили ее, добавив изображения запуска (приложение SDL2). - person Viktor Sehr; 24.06.2019

Для iPhone X требуется другое стартовое изображение размером 1125 x 2436 пикселей (375 x 812 пикселей @ 3x).

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

Дополнительные сведения см. В руководстве по интерфейсу пользователя.

person Lal Krishna    schedule 15.09.2017

Я придумал, как исправить (хотя я до сих пор не понимаю, почему это произошло только на iPhone X) раскадровку LaunchScreen на iPhone X с черными верхними и нижними полосами.

У меня есть раскадровка LaunchScreen с одним UIImageView.

верх и низ UIImageView должны быть прикреплены к SuperView верху и низу. НЕ в SafeArea.

person sabiland    schedule 23.09.2017
comment
Это решило мою проблему с LauchScreen с Autolayout. Но вместо того, чтобы прикреплять к границам, я центрировал по горизонтали и вертикали и равнял ширину / высоту SuperView. - person Yuri Natividade; 27.09.2017
comment
Это сработало только после закрепления представлений в других раскадровках к верхнему / нижнему краю представления, а не к направляющим макета. Обязательно проверяйте раскадровки в режиме iPhone X. - person Crashalot; 09.11.2017
comment
почему я не вижу супервизора в моей раскадровке, когда я устанавливаю это ограничение - person rd_; 08.10.2018

Я исправил это, просто вставив случайный текст в текстовое поле Lanch Screen File. У меня даже нет файла экрана запуска ... XCode так глючит.

обновить

Хотя это исправляет это в симуляторе (все еще очень странно и неожиданно), при загрузке двоичного файла в iTunes Connect это не удастся из-за того, что не найден файл LanchScreen с именем "random-name"

person Arbitur    schedule 04.11.2017
comment
Правильно, он работает на iphone x. но он не работает ни на каких других устройствах, братан. - person Govaadiyo; 28.11.2017
comment
Да да! это исправляет это в xcode. Спасибо! Этого достаточно для тестирования. Куплю настоящий iphone X, чтобы избежать проблемы с xcode в будущем для тестирования. - person Phyllis Sutherland; 31.08.2018

Просто столкнулся с этим при попытке обновить приложение, над которым я давно не работал.

В Xcode 9.4 я смог исправить это, выполнив следующие действия:

  1. Добавьте экран запуска, перейдя в Файл -> Создать -> Файл ... -> Экран запуска.

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

  1. Убедитесь, что вновь добавленная раскадровка экрана запуска выбрана в качестве файла экрана запуска в настройках проекта.

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

person Myxtic    schedule 23.12.2018

Если у вас уже есть стартовое изображение размером 1125 × 2436 пикселей, но приложение все еще не использует полноэкранный режим, проверьте, является ли ваше изображение PNG.

person Blago    schedule 28.03.2018

если вы удалили LaunchScreen.storyboard; Выберите свой проект, выберите цель проекта, Общие -> Значки приложений и изображения запуска -> Файл экрана запуска: выберите здесь Main.storyboard вместо LaunchScreen.storyboard

person Bedri Keskin    schedule 25.06.2018

Просто возникла эта проблема ... Когда я выбрал проект и правильную цель, у меня был пробел для «файла экрана запуска» под значками приложений и вкладкой изображений экрана запуска. Я установил LaunchScreen по умолчанию, и проблема изменения размера, с которой я столкнулась, была решена.

person Revanth Matha    schedule 22.05.2019

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

person Aqib Zareen    schedule 17.02.2020
comment
выберите Laaunchscreen.storyboard в целом, я решил проблему. - person Aqib Zareen; 15.04.2020