Альтернативные макеты для портрета и ландшафта в iOS в Xcode 10.x - PullRequest
1 голос
/ 12 июня 2019

Мне нужно иметь две совершенно разные компоновки для портретного и альбомного экранов в моем приложении iOS Например, в приложении «Калькулятор» в iOS: Портретный экран: Portrait на альбомном экране: Landscape Это Альтернативные макеты iOS для книжной и альбомной раскадровки не работают, потому что я не могу найти это функциональность в XCode 10.X.

1 Ответ

1 голос
/ 12 июня 2019

Единственный способ, которым я могу придумать, это поместить фрагмент кода в UIViewController.viewDidLayoutSubviews () или UIView.layoutSubviews (). Код может выглядеть примерно так:

if frame.size.width > frame.size.heigh {
   // adjust for landscape
} else {
   // adjust for portrait
}
layoutIfNeeded()

Обратите внимание, что это не будет работать, если вы попытаетесь сделать это в viewDidLoad (), так как ширина и высота могут быть не определены в этой точке. Кроме того, в UIViewController это 'view.frame.size.width' и view.layoutIfNeeded ()

Я делаю что-то похожее, чтобы настроить пользовательский интерфейс для iPhone SE в моем приложении, и оно отлично работает.

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

Кроме того, это отличается от "черт". Вероятно, я бы посоветовал изучить особенности, прежде чем идти по этой дороге.

...