Портретное представление дает ту же ширину, что и ландшафтный режим в 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, и в настройках проекта ориентация. Все ориентации проверены
Моя иерархия контроллеров представления
- контроллер представления - пейзаж
- vc - портрет
- vc- портрет
- vc -landscape
- vc - портрет
Поэтому я не могу изменить одну ориентацию в info.plist
Обновлено:
Когда я изменяю в info.plist поддерживаемые ориентации все на портрет. И удалить приведенный выше код означает, что проблем нет.
Но проблема в том, когда использовать
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.PortraitUpsideDown.rawValue)
}
Он отображает вид в портретном режиме, но дает ширину и высоту, такие же, как в ландшафтном режиме.
Но когда все меняется в info.plist, он дает правильную высоту и ширину портрета.
Как можно это решить.
Спасибо
1 ответ
Я просто создаю собственный вид, если мне нужно портретное означает ширину 768 и высоту 1024, в viewDidload, который решает мою проблему