У меня следующий код в используемом мной viewController:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
print("viewDidLayoutSubviews")
if traitCollection.horizontalSizeClass == .compact {
print("C")
} else {
print("R")
}
}
Когда я запускаю приложение и поворачиваю симулятор в портретном режиме, оно печатает:
viewDidLayoutSubviews
C
В ландшафтном режиме он печатает это:
viewDidLayoutSubviews
R
Я не понимаю, почему в портретном (как показано на рисунке) класс горизонтального размера все еще компактен? Разве это не должно быть регулярным? Из того, что я понимаю, сафари в этом случае - компактный класс, и мое приложение здесь на левой стороне должно быть регулярным. Почему это не так? Пейзаж прекрасно работает.
Я также протестировал тот же код на устройстве (iPad Pro (12,9-дюймовый), 3-го поколения), и он имеет то же самое поведение не соответствует, и я не понимаю, почему.