Войти

Tricks for Launch Screen

Для большинста приложений launch screen выглядит тривиально: либо он залит в белый цвет, либо в центре экрана располагают иконку приложения. Эти решения выглядят не элегантно.

Сейчас я покажу интересный способ реализации экрана. Этот вариант при определенной кастомизации может применятся даже для приложений без UINavigationBar или UITabBar

Начнём

Начиная с iOS 11 доступен largeTitleDisplayMode, рассмотрим пример когда ваш рут контроллер имеет именно такой стиль для навигейшн бара:

Как известно, фоном для UINavigationBar является сложный блюр, который даже поверх белого цвета имеет узнаваемый оттенок (если размывать классическим блюром solid цвет, блюра видно не будет). Мы используем эту узнаваемую особенность, и в сториборде для Launch Screen.

Удалите дефолтный контроллер, и на его место добавьте UINavigationController:

Остается указать флаг, что для UINavigationBar мы будем использовать стиль Prefers Large Titles. Для этого перейдем в инспектор, и справа вверху найдем нужный чекбокс:

Не забаывайте перед этим выделить UINavigationBar в дереве слева:

Результат

Мы должны увидеть что стиль бара изменился:

Теперь достаточно запустить проект, чтобы увидеть что на лаунч скрине появился UINavigationBar без контента.

Сложнее сделать реализацию для UITabBar, хотя результат мне нравится больше. Launch Screen не поддерживает указание swift класса для объектов на сториборде, поэтому список интсрументов ограничен вкладками инспектора. Уберем уже созданные контроллеры, и добавим UITabBarController:

Вместе и с UITabBarController, создасться два дочерних контроллера. Сами контроллеры нас не интересуют. Мы настроим исключительно иконки для TabBar.

Для этого, предварительно выбрав в инспекторе первый контроллер (иконка настраивается на каждом контроллере отдельно), найдем секцию BarItem, и заполним параметры по своему вкусу:

Как только вы будете вносить изменения в контроллер, TabBar будет изменятся. Когда закончите заполнять, достаточно просто запустить контроллер.

Переход

Переход между Launch Screen и Root Controller происходит через cross анимацию (когда один экран становится прозрачным), что позволяет плавно показать заголовки под BarItem, если вы их решили не добавлять в Launch Screen.

Вы так же могли заметить что я использую этот прием в текущем приложении.

Стоит глянуть