Удаление LaunchScreen портит внешний вид приложения

Я добавил LaunchScreen в свое приложение, просто чтобы попробовать, и он работает без проблем. Когда я пошел и удалил его, просто удалив файл LaunchScreen.storyboard, экран запуска все еще появлялся, когда я запускал приложение. Затем я удалил его из файла info.plist и получил неожиданное поведение, теперь мое приложение отображается в неполноэкранном режиме и немного увеличено. Кроме того, я получаю предупреждающее сообщение о том, что мне не хватает файла по умолчанию @ 568.png. Как я могу вернуться в состояние перед добавлением экрана запуска? Или просто удалить LaunchScreen без этого предупреждения?

Экран запуска

Перед добавлением LaunchScreen

Спасибо Всем Душан


person Dusan Juranovic    schedule 21.01.2016    source источник
comment
Почему вы убрали экран запуска? Вам нужен либо экран запуска, либо целая куча изображений запуска. Использование экрана запуска намного проще и требуется для поддержки iPad Pro.   -  person rmaddy    schedule 22.01.2016
comment
Когда я впервые создал приложение, у меня вообще не было файла LaunchScreen.storyboard. Приложение только для iPhone. Приложение сразу запустилось с первым ViewController приложения.   -  person Dusan Juranovic    schedule 22.01.2016
comment
Как я уже сказал, для поддержки всех размеров экрана iPhone вам нужен либо один файл экрана запуска, либо целая куча соответствующих изображений запуска.   -  person rmaddy    schedule 22.01.2016
comment
Я понимаю, о чем вы говорите, но это меня немного смущает, так как у меня изначально не было экрана запуска. Проблема началась только после того, как я добавил экран запуска из файлов пользовательского интерфейса, а затем удалил его.   -  person Dusan Juranovic    schedule 22.01.2016
comment
@rmaddy Что ж, должно быть что-то, если у вас нет экрана запуска. Как указал rmaddy, вы можете использовать изображение вместо фактического экрана запуска - если там что-то есть. Почему вы вообще убираете экран запуска? Что было, когда вы запускали приложение до того, как добавили экран запуска?   -  person Coder-256    schedule 22.01.2016
comment
Раньше приложение переходило прямо в мой TableView, не показывая перед этим никакого экрана запуска. Теперь я получаю это экран запуска по умолчанию с именем моего приложения на белом фоне.   -  person Dusan Juranovic    schedule 22.01.2016
comment
Я добавил снимок текущего LaunchScreen.   -  person Dusan Juranovic    schedule 22.01.2016
comment
Теперь, когда я оглядываюсь назад, я помню, как удалил файл LaunchScreen.storyboard по умолчанию, когда только начал создавать приложение, но у меня не было ни подобных проблем, ни каких-либо предупреждений. Это началось только тогда, когда я повторно представил LaunchScreen.   -  person Dusan Juranovic    schedule 22.01.2016


Ответы (1)


Вы пытались удалить ссылку в поле «Файл экрана запуска» в разделе «Цель приложения»> «Общие»?

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

person the_critic    schedule 22.01.2016
comment
Я пробовал это, но LaunchScreen все еще появляется. Только когда я удаляю запись info.plist, экран запуска не появляется, но затем я получаю предупреждение, и приложение выглядит странно. - person Dusan Juranovic; 22.01.2016
comment
Вы можете уточнить, что приложение выглядит странно? - person the_critic; 22.01.2016
comment
Оно не отображается в полноэкранном режиме (у меня черный верх и низ), и все немного увеличено. Приложение все еще работает, но оповещения намного больше, и в целом все больше. - person Dusan Juranovic; 22.01.2016
comment
И я получаю предупреждение, что мне не хватает файла [email protected] - person Dusan Juranovic; 22.01.2016
comment
Не могли бы вы попробовать что-то, что кажется мне немного хакерским? В поле Launch Screen укажите вашу основную раскадровку (например, Main.storyboard). - person the_critic; 22.01.2016
comment
Я тоже так пробовал, результат тот же. Я даже удалил файл LaunchScreen.storyboard. Ничего не работает, только удаление info.plist, но с теми побочными эффектами. - person Dusan Juranovic; 22.01.2016
comment
Я создал пример проекта и могу подтвердить, что макет приложения неисправен после удаления файла LaunchScreen, однако, когда я указываю Main.storyboard в поле LaunchScreen, приложение запускается нормально (конечно, будет какой-то экран ( белый/черный) для сокращения времени между загрузкой и запуском) - person the_critic; 22.01.2016
comment
Раскадровка в этом случае будет определять, как выглядит экран запуска, т. е. если указанная вами раскадровка имеет желтый фон, она будет желтой. У него не будет ваших данных и просмотров после viewdidload, очевидно, потому что он не дошел до этого. Так, например, если у вас есть табличное представление в Main.storyboard и вы указываете его в качестве файла экрана запуска, приложение будет отображаться с пустым табличным представлением в качестве экрана загрузки. - person the_critic; 22.01.2016
comment
Опять же, это кажется мне хакерским, и я бы не стал использовать это сам, но если вам абсолютно необходимо это сделать, то я думаю, что это путь... - person the_critic; 22.01.2016
comment
Это правильно, я получаю такое же поведение, но как ни странно, когда я указываю Main.storyboard в LaunchScreen, этот пробел все еще загружается с помощью LaunchScreen с именем моего приложения. Когда я удаляю запись info.plist для экрана запуска, я все еще получаю предупреждение об отсутствии png, которое снова исчезает после того, как я снова делаю Main.storyboard в поле LaunchScreen. Это как бесконечный цикл. Одно не идет без другого. Main.storyboard в поле LaunchScreen решает проблему дефектного макета, но LaunchScreen по умолчанию с названием приложения все еще там. Выбор один или другой, я думаю - person Dusan Juranovic; 22.01.2016
comment
Я действительно не понимаю, что вы говорите. Что произойдет, если вы укажете Main.storyboard для LaunchScreen и Main Interface? В примере проекта, который я создал, это, кажется, работает нормально... Можете ли вы уточнить свои проблемы? - person the_critic; 22.01.2016
comment
Хорошо, сначала. Единственный способ избавиться от launchScreen — это удалить базовое имя файла интерфейса экрана запуска из файла info.plist. Когда я это делаю, я получаю предупреждение Missing [email protected] запуска изображения. Затем я устанавливаю Main.storyboard в поле LaunchScreen, и предупреждение исчезает, но запись для базового имени файла интерфейса экрана запуска снова появляется в info.plist. После всего, что я получаю такое же поведение, LaunchScreen появляется перед запуском моего приложения. - person Dusan Juranovic; 22.01.2016
comment
Если я решу проигнорировать предупреждение, я получу дефектный макет - person Dusan Juranovic; 22.01.2016
comment
Забыл упомянуть, что для основного интерфейса и файла экрана запуска установлено значение Main.storyboard. - person Dusan Juranovic; 22.01.2016
comment
Экран запуска существует по какой-то причине, опять же, время между загрузкой вашего приложения операционной системой и загрузкой вашего приложения должно быть сокращено. Поэтому, даже если вы ничего не укажете, он покажет экран запуска, который вы укажете в качестве файла запуска. Начиная с iOS8 этот файл является обязательным, и ОС будет делать предположения о размере экрана на его основе. Таким образом, ваши единственные варианты остаются с Main в качестве файла запуска. Также обратите внимание, что ссылка на файл на изображении, которое я разместил в исходном ответе, — LaunchScreen (без расширения .storyboard!), поэтому убедитесь, что вы не используете там расширение. - person the_critic; 22.01.2016
comment
Да, я это понимаю и благодарю вас за помощь. Меня просто немного сбивает с толку то, что до того, как я добавил файл LaunchScreen.storyboard, у меня не было таких проблем, и не было запуска LaunchScreen до того, как это сделало мое приложение. И теперь я могу вернуться к тому же состоянию приложения. Я думаю, я застрял с этим экраном запуска. Еще раз спасибо за ваш вклад. - person Dusan Juranovic; 22.01.2016