iOS: Как правильно использовать классы размера (или другое решение), чтобы иметь разные портретные и альбомные макеты? - PullRequest
0 голосов
/ 14 декабря 2018

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

Вот макет, который я хочу иметь:

enter image description here

Поэтому я попытался использовать классы размеров, но я оченьзапутался в том, как это работает.Например, я попробовал это из существующего макета:

final class TestCell: UITableViewCell {
    @IBOutlet weak var headerLabel: UILabel!
    @IBOutlet weak var subtextLabel: UILabel!
}

enter image description here

Изменив ориентацию, щелкнув «Vary for traits» в зависимости от ширины, иобновляя макет с помощью «Done Varying»,

enter image description here

Но теперь, когда я хочу сохранить это и вернуться в ландшафтный режим, я получаюодин и тот же макет для обеих ориентаций:

enter image description here

Так что я делаю не так?Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Попробуйте снова использовать Vary for Traits ...

  • Сделайте ваш портретный макет wC hR сначала
  • , затем просмотрите в альбомном режиме
  • вы сейчасв wC hC
  • щелкните Vary for Traits и выберите Height (ширина по-прежнему wC)
  • измените ограничения ... удалите те, которыене будет применяться к этому макету, добавьте новые, которые будут применяться
  • Готово

То, что должно дать вам то, что вы хотите.

0 голосов
/ 14 декабря 2018

По вашему требованию вы можете использовать UIStackView,

В режиме Portrait [w C h R ], удерживая ось UIStackView доVertical и в режиме Landscape [w C h C ], оно должно быть Horizontal

PortraitLandscapealighnment

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...