Lauchscreen.storyboard пейзажная заставка - PullRequest
0 голосов
/ 04 февраля 2019

Я использую lauchscreen.storyboard для заставки в моем приложении iOS.Я добавил заставку в раскадровку.Когда приложение запускается, портретная заставка работает правильно.Но при открытии приложения в ландшафтном режиме синий цвет появляется как с правой, так и с левой стороны заставки.

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

Дайте мне знать, как установить два изображения в раскадровке, одно для портрета и одно для пейзажа, или лучшую практику для установки заставки для портретной и альбомной ориентации,Я не смог найти никакого решения для этого в Интернете, хотя это кажется простой проблемой.

Ответы [ 4 ]

0 голосов
/ 13 февраля 2019

enter image description here

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

enter image description hereenter image description here

Обновите свою альбомную картину здесь.

лично, я также рекомендую вам использовать AutoLayouts.

Запустите приложение.

Пример - Результаты -

Landscape Portrait

0 голосов
/ 09 февраля 2019

как установить два изображения в раскадровке?

В iOS sizeClass есть практически все, что вы можете увидеть.Вы можете выбрать изображение, цвет и т. Д. Для любой ситуации, в которой вы нуждаетесь, в зависимости от размера главного окна вашего приложения (не только ориентация устройства)

SizeClass

Это удобнее.Потому что, возможно, устройство находится в альбомном режиме, но на iPad с разделенным экраном ??‍♂️.Так что пусть ОС решит, что лучше всего подходит для ситуации с размером.

- Размер классов в конструкторе интерфейсов

[1[2] 2

- Рабочий пример:

working example

0 голосов
/ 12 февраля 2019

Используйте Vary для черт, как показано на скриншотах с ионами.Я попробовал это и работал для меня.

enter image description here enter image description here

0 голосов
/ 06 февраля 2019

Установка одного и того же стартового изображения для обеих ориентаций:

  1. Добавьте изображение к виду основного контроллера вашего LaunchScreen.storyboard и ограничьте все края до superview (небезопасная зона)

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

enter image description here

enter image description here

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

Настройка должна выглядеть следующим образом (вы можете включить предварительный просмотр справа, щелкнув по кнопкередактор помощи и переключение с Automatic на Preview):

enter image description here enter image description here


Установка различных стартовых изображений в зависимости от ориентации:

  1. Нажмите кнопку + рядом с вашим изображением

enter image description here

Добавить настройку для regular width & compact height

enter image description here

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

enter image description here


Обновление: А как насчет iPad?

К сожалению, кажется (хотя бы до Xcode10.1) Невозможно настроить экран запуска таким же образом для iPad по нескольким причинам.Основным является то, что iPad Regular x Regular для портретной и альбомной ориентации.Другая причина в том, что вы не можете использовать пользовательские классы в вашем LaunchScreen.storyboard.Потому что, если бы вы могли, вы могли бы создать подкласс UIImageView и переопределить traitCollection чем-то вроде этого (по существу, вы бы восприняли iPad как класс iPhone):

override public var traitCollection: UITraitCollection {
    if UIDevice.current.userInterfaceIdiom == .pad && UIDevice.current.orientation.isPortrait {
        return UITraitCollection(traitsFrom:[UITraitCollection(horizontalSizeClass: .compact), UITraitCollection(verticalSizeClass: .regular)])
    }
    return super.traitCollection
} 

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

Я знаю, что это не то, что вы искали в ответе, но ябоюсь, что (пока) вам придется использовать статические изображения в вашем Assets для работы с iPad.

...