Портретное представление дает ту же ширину, что и ландшафтный режим в Swift

Мой первый контроллер просмотра находится в альбомной ориентации. При нажатии кнопки второй виртуальный канал должен отображаться в портретном режиме. Я программно создаю кнопку в зависимости от ширины кадра. Но портрет vc дает ширину

(self.view.frame.width) = 1024 instead of 798.

Это создает проблемы, чтобы скрыть мои кнопки и некоторые проблемы с интерфейсом.

Коды интерфейса:

override func shouldAutorotate() -> Bool {

return true
}

override func supportedInterfaceOrientations() -> Int {

return Int(UIInterfaceOrientationMask.PortraitUpsideDown.rawValue)

}

И в info.plist, и в настройках проекта ориентация. Все ориентации проверены

Моя иерархия контроллеров представления

  1. контроллер представления - пейзаж
  2. vc - портрет
  3. vc- портрет
  4. vc -landscape
  5. vc - портрет

Поэтому я не могу изменить одну ориентацию в info.plist

Обновлено:

Когда я изменяю в info.plist поддерживаемые ориентации все на портрет. И удалить приведенный выше код означает, что проблем нет.

Но проблема в том, когда использовать

      override func supportedInterfaceOrientations() -> Int {

return Int(UIInterfaceOrientationMask.PortraitUpsideDown.rawValue)

}

Он отображает вид в портретном режиме, но дает ширину и высоту, такие же, как в ландшафтном режиме.

Но когда все меняется в info.plist, он дает правильную высоту и ширину портрета.

Как можно это решить.

Спасибо

1 ответ

Я просто создаю собственный вид, если мне нужно портретное означает ширину 768 и высоту 1024, в viewDidload, который решает мою проблему

Другие вопросы по тегам