Запустить экран, который ведет себя точно так же, как Launch Image

Чтобы заставить iPad Pro использовать полное разрешение при запуске, мы должны использовать файл экрана запуска.

Я никогда раньше не использовал Xbox/Storyboard экрана запуска, потому что мое приложение обратно совместимо с iOS 7. Обычно я использую Каталог активов LaunchImage для определения конкретного статического изображения для каждого измерения устройства и ориентации запуска.

Теперь я пытаюсь определить файл экрана запуска, который действует как каталог активов LaunchImage, но я изо всех сил стараюсь это сделать. В частности:

1) Я не вижу хорошего способа выбрать другой UIImage в зависимости от точного размера устройства, например. показать одно изображение пользователям iPhone 4S и другое изображение для пользователей iPhone 5.

2) Я не вижу способа выбрать другой стиль UIImage для iPad Portrait и iPad Landscape. В классах размера кажется, что и iPad Portrait, и iPad Landscape являются "Regular" width и "Regular" height, поэтому любой UIImage, который будет отображаться в iPad Portrait, также будет отображаться в iPad Landscape.

Ответы

Ответ 1

Система загружает файл запуска перед запуском приложения, которое создает некоторые ограничения на то, что он может содержать (некоторые из которых могут заставить вас вернуться к статическим файлам изображений):

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

2.Вы можете использовать только стандартные классы UIKit, чтобы вы могли использовать UIView или UIViewController, но не пользовательский подкласс. Если вы попытаетесь установить собственный класс, в Xcode вы получите неверную конфигурационную ошибку.

3. Файл запуска может использовать только базовые представления UIKit, такие как UIImageView и UILabel. Вы не можете использовать UIWebView.

4.Если вы используете раскадровку, вы можете указать несколько контроллеров представлений, но снова есть некоторые ограничения. Например, вы можете встроить контроллеры представлений в контроллер навигации или панели вкладок, но более сложные классы классов, такие как UISplitViewController, не работают (по крайней мере, пока).

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

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

Обратите внимание, что при развертывании на iOS 7 вам все равно придется включать статические файлы изображений запуска. Вы можете включить как файл образа запуска, так и статические изображения запуска. Такие устройства, как iPhone 6, работающий под управлением iOS 8, будут использовать файл образа запуска, в то время как устройства iOS 7 будут возвращаться к изображениям запуска.

Ответ 2

  • Сначала создайте все свои изображения. Затем откройте свой каталог активов и щелкните правой кнопкой мыши → Иконки приложений и запустите изображения → Новое изображение запуска iOS. Это создаст файл для перетаскивания всех ваших файлов. Сделай это. Назовите актива "Запуск". введите описание изображения здесь

  • Создайте новую раскладку экрана запуска с командой -n. Выберите iOS → Пользовательский интерфейс → Экран запуска. Вызовите файл "Запустить экран".

  • На раскадровке Launch Screen выберите вид диспетчера представлений

[selecting the view.

  1. Найдите местозаполнитель UIImageView из библиотеки объектов в нижнем углу правой части ba и перетащите его в экран запуска.

UIImageView

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

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

  1. Управляйте перетаскиванием из UIImageView в виде контейнера, чтобы настроить ограничения автоматического макета следующим образом:

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

  1. Необязательно... если вы хотите, чтобы он выглядел красиво в вашем раскадровке, выберите представление и сделайте option-cmd- =, чтобы обновить фрейм UIImageView.

  2. Перейдите в свой info.plist и введите имя своего раскадровки ("Запуск Экран ") для ключа" Базовое имя файла интерфейса экрана запуска "

  3. Очистите и запустите.

Надеюсь, что это помогает и что я ничего не забыл!

Ответ 3

Вы можете использовать классы классов, чтобы указать разные изображения для разных размеров экрана, но это не поможет вам обрабатывать случаи экранов iPhone 4S и iPhone 5.

Ответ 4

Это решение для iPad, которое может работать,

для iPhone вы можете использовать классы размера, и я не размещаю это решение здесь.

Решение состоит в том, чтобы разбить изображение вашего заставки на компоненты и использовать ограничения для управления изображением для Portrait and Landscape.

Вот пример того, как я это сделал.

Создайте раскладку для iPad для iPad

UILaunchStoryboardName ~ ipad (UILaunchStoryboardName ~ iphone)

Возьмите свой ландшафтный образ в моем случае 2048x1536

Я взял ландшафтное изображение и разрезал его на три

  • Центр 1536x1536
  • Левый 256x1536
  • Правый 256x1536

На раскадровке запуска я создал 3 вида изображений со следующими ограничениями

Center Piece:

  • Пин вверх и вниз,
  • центр в режиме просмотра,
  • поддерживать соотношение сторон

Левая и правая части:

  • 0 Трейлинг/ведущий к центру,
  • Выровнять верх,
  • Равная высота

Затем для режима просмотра слева и справа я изменил его с заполнения аспекта на нижний правый и нижний левый (работал лучше для меня)

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