Итак, если Apple обесценивает всю ориентировочную строку («портрет», «пейзаж»), тогда все, о чем вы заботитесь, - это отношение ширины к высоте. (вроде как ответ @ bpedit)
Если вы разделите ширину на высоту, если результат меньше 1, то mainScreen или контейнер или что-то еще находится в режиме «портрет». Если результат больше 1, это «пейзажная» живопись. ;)
override func viewWillAppear(animated: Bool) {
let size: CGSize = UIScreen.mainScreen().bounds.size
if size.width/size.height > 1 {
print("landscape")
} else {
print("portrait")
}
}
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
if size.width/size.height > 1 {
print("landscape")
} else {
print("portrait")
}
}
(я предполагаю, что если вы используете этот подход, то вы, вероятно, не очень заботишься о конкретно обработке условия, когда отношение ровно 1, равная ширина и высота)
Какой ваш проблема? Переводить это в Swift или получать значения, которые вы ожидаете? –
Ориентация устройства не обязательно соответствует ориентации вашего пользовательского интерфейса. Точка обсадной колонны - положите устройство на место и проверьте свой код! – Patrick