Создание Launch Screen.xib для iOS8 (iOS11, Swift 4 и LaunchScreen.storyboard)

Я только что узнал, что для того, чтобы иметь возможность иметь описание для вашего приложения в магазине приложений, скажите: «Это приложение оптимизировано для iPhone 6 и iPhone 6 Plus». вам нужно использовать XIB-файл запуска или файл раскадровки для образов запуска (согласно [Apple][1]).

Итак, я создал новый XIB экрана запуска, и теперь я немного, но так как я обычно делаю все в коде и не использую конструктор интерфейсов. Я удалил вставленную метку по умолчанию и добавил в представление UIImageView. Теперь мне интересно, как бы я:

1) Скажите UIImageView изменить размер до размера любого экрана, на котором он находится.

2) Скажите UIImageView выбрать ImageA, если на 3,5-дюймовом экране запущено приложение, или ImageB, если на 4-дюймовом экране запущено приложение и т. д. и т. д.

По сути, я просто пытаюсь заставить файл запуска .xib имитировать поведение экрана запуска в обычном режиме. Был бы признателен, если бы кто-нибудь мог оказать некоторую помощь в этом!


person Ser Pounce    schedule 04.11.2014    source источник


Ответы (5)


У вас есть два варианта:

  1. Вы используете автомакет и придаёте изображению полноэкранный вид (расстояние сверху, снизу, слева и справа равно 0). Однако это может привести к обрезанию изображения для определенных размеров экрана, чего вы можете не захотеть. Таким образом, вы можете рассмотреть (2)

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

person Sebastian Borggrewe    schedule 04.11.2014
comment
Спасибо. Просто предупреждение: при использовании каталога активов для предоставления изображения UIImageView в LaunchScreen.xib не связывайтесь с набором изображений запуска, это не сработает. Просто сделайте нормальный набор изображений. - person Ser Pounce; 15.11.2014
comment
Если вы используете симулятор для тестирования, вы можете обнаружить, что установка изображений 5.5 и 4.7 в группе ресурсов LaunchImage в каталоге ресурсов не приведет к каким-либо изменениям. Это связано с тем, что каталог активов может кэшироваться между сборками. Чтобы обеспечить чистый запуск, сбросьте содержимое и настройки... в меню симулятора и выполните очистку своего проекта перед его запуском. - person applejack42; 17.02.2015
comment
Этого также можно добиться, очистив сборку и просто удалив приложение из симулятора. - person Sebastian Borggrewe; 17.02.2015

Я нашел ответ полезным.

Краткое описание старых шагов по созданию LaunchScreen xib для iOS 8 приведено ниже новых шагов.

Со ссылкой на XCode 9, Swift 3 или Swift 4 и LaunchScreen.storyboard ниже приведены новые шаги.

Первый шаг — создать два изображения для заставки в портретном и альбомном режимах (png или jpeg) в вашем любимом графическом редакторе. (Если ваше приложение поддерживает только портретный режим, вы можете пропустить изображение и настройки ландшафтного режима.)

Изображение в портретном режиме: -

Создайте изображение «всплеск-портрет» со своим собственным полным фоном для размера «ширина 1125 x высота 2436». Обратите внимание, что фон будет обрезаться на устройствах разного размера.

Любая информация, графика, которую вы не хотите обрезать, должна быть создана в центре вышеприведенного изображения в размере «ширина 1125 x высота 1471». Это всегда должно быть в центре выше полного изображения.

Изображение в ландшафтном режиме: -

Создайте изображение «заставка-пейзаж» со своим собственным полным фоном размером «2436 x высота 1125». Обратите внимание, что фон будет обрезаться на устройствах разного размера.

Любая информация, графика, которую вы не хотите обрезать, должна быть создана в центре изображения выше в размере "ширина 860 x высота 1125". Это всегда должно быть в центре выше полного изображения.

Когда оба образа будут готовы, вы можете добавить их в xcassets или оставить в ресурсе.

Теперь выполните следующие шаги.

1) "LaunchScreen раскадровка" уже создана с новым проектом. Открой это.

2) Добавьте представление изображения в представление.

3) Установите сохраненное выше изображение «заставка-портрет» в качестве источника изображения.

4) Установите режим просмотра изображения «Режим содержимого» изображения как «Заполнение пропорций».

5) Добавьте 4 ограничения просмотра изображения для верхнего, нижнего, конечного и ведущего к Superview.

Это делается для заставки приложения в портретном режиме.

Для поддержки ландшафтного режима выполните следующие дополнительные действия. https://stackoverflow.com/a/46089856/2641380

6) Нажмите кнопку + рядом с источником просмотра изображения, который вы настроили на шаге 3.

7) В появившемся всплывающем окне выберите «Обычный» для селекторов ширины и высоты. Это определяет новый адаптивный набор для iPad в альбомной ориентации. Появится новое поле источника изображения с заголовком wR hR. Добавьте изображение «всплеск-пейзаж» в поле источника изображения wR hR, чтобы раскадровка знала, что нужно использовать другое изображение в альбомной ориентации.

8) Теперь нам нужно добавить поддержку устройств «iphone plus» в альбомной ориентации. Поэтому снова нажмите кнопку + рядом с полем Источник изображения.

9) На этот раз выберите компактный для высоты и обычный для селекторов ширины. Это определяет новый адаптивный набор для устройств «iPhone plus», которые находятся в альбомной ориентации. Появится новое поле источника изображения с заголовком wR hC.

10) Добавьте изображение «заставка-пейзаж» в поле источника изображения wR hC, чтобы раскадровка знала, что нужно использовать другое изображение в альбомной ориентации на «устройстве iPhone plus».

Поскольку устройства iPad «обычны как по ширине, так и по высоте», мы увидим «заставку-пейзаж» в iPad как для портретного, так и для ландшафтного режима. Ширина 860 для отображаемого контента на изображении «всплеск-пейзаж» будет отображать полный контент как в портретном, так и в ландшафтном режиме.

Кратко о старых шагах по созданию xib LaunchScreen для iOS 8.

1) создайте новый «LaunchScreen xib» из нового файла -> пользовательский интерфейс -> экран запуска (оставьте автоматическую компоновку включенной).

2) Добавьте представление изображения в xib --> представление (основной вид).

3) установите для него изображение заставки (изображение не должно быть в файле ресурсов).

4) установите изображение как «Соотношение сторон» (если требуется).

5) вы также можете изменить цвет фона «представления» (суперпредставления) как можно ближе к цвету фона изображения.

6) выберите вид изображения, щелкните в меню - редактор - закрепить - нижнее пространство для суперпросмотра.

7) это покажет красную метку ошибки рядом с «представлением» (суперпредставление изображения).

8) нажмите на значок ошибки, вы увидите примерно две ошибки авторазметки.

9) при нажатии на ошибку вы найдете меню с автоматическим исправлением ошибок макета.

10) при исправлении ошибок вы обнаружите всего четыре «ограничения» с «вертикальным» и «горизонтальным» пространством между супервизором и изображением.

11) теперь вы можете протестировать их на разных устройствах или симуляторах.

С уважением.

person SHS    schedule 11.03.2015

Вы можете изменить размер изображения, установив ограничение на верхний, нижний, передний и задний края суперпредставления. Просто нажмите на изображение и выберите Editor->Pin в верхнем контекстном меню. Вы также можете установить аспекты UIImageView, щелкнув его и установив, например, «Aspect Fit». Перед установкой ограничений убедитесь, что ImageView покрывает весь экран, иначе вам придется изменить ограничения.

Чтобы установить разные изображения для разных размеров экрана, я предполагаю, что вам нужно создать класс и изменить метод viewWillAppear для загрузки соответствующего изображения.

Удачи! Эрик

person Erik    schedule 04.11.2014

Launch xib не может иметь настраиваемый класс, поскольку ваше приложение не запускалось при его отображении. В итоге я сделал следующее:

  1. использовать функцию класса размеров
  2. Создайте 3 изображения пользовательского интерфейса (по одному на класс размеров)
  3. Используйте автоматическую компоновку с ограничениями, которые применяются к каждому размерному классу.

Поэтому, когда вы отображаете один тип устройства, ограничения по ширине и высоте двух других UIImageView устанавливаются равными 0.

person Zeev Vax    schedule 14.10.2015

Создайте новый файл. В разделе Пользовательский интерфейс выберите Просмотр. После этого вы можете назвать свой xib LaunchScreen и протестировать его, добавив ярлык с чем-то вроде «Test Launch» и запустив приложение. Вы должны увидеть экран запуска!

person Ubaid Ullah    schedule 05.11.2020