2014-01-08 2 views
1

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

Я нашел решение для использования двух разных видов и скрыть или показать его в зависимости от ориентации устройства, но для меня это не очень хорошо. У меня много выходных ячеек, которые мне нужно подключить от дизайнера xcode к коду, и кажется, что я не могу подключить два разных объекта, например, две разные кнопки к одному и тому же IBOutlet. Могу я? Когда я это сделал, он работал только один. Более того, эти решения не кажутся такими эффективными.

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

У кого-нибудь есть идеи, как решить эту проблему?

ответ

0

Вы должны использовать только один ViewController, а один вид и вид жесткого кода - позиции элементов. Как (псевдокод)

если (альбомная ориентация) label1.frame = ...

еще (портретная ориентация) label1.frame = ...

Может быть, вы можете группировать части макета в пределах другого UIView (выберите элементы и перейдите в Xcode-> Меню Editor-> Embed-> View. Затем подключите новое представление к ViewController и нажмите там, где вам это нужно.

Посмотрите на this answer, может быть, это помогает

Смежные вопросы