Я создаю приложение, которое поддерживает только альбомный режим устройства iOS.Поэтому я установил, чтобы он возвращал только YES для UIInterfaceOrientationLandscapeRight
и UIInterfaceOrientationLandscapeLeft
в shouldAutorotateToInterfaceOrientation:
и устанавливал начальную ориентацию в Info.plist
на UIInterfaceOrientationLandscapeRight
.Приложение отображается нормально.
Проблема в том, что система координат не находится в альбомной ориентации, пока не закончится загрузка вида (я не особенно уверен, когда она применяется правильно).Что я знаю, так это то, что он меняется на правильное координатное пространство при вызове: shouldAutorotateToInterfaceOrientation
при запуске.Проблема в том, что когда вызываются и viewDidLoad
, и initWithCoder:
, то они находятся в неправильном координатном пространстве перед shouldAutorotate...
.
Я имею в виду, что если я установлю представление на полную ширинуЭкран с CGRectMake(0, 0, 480, 320)
(вместо использования self.view.frame или чего-то еще) скрывается, когда координатные пространства повернуты «исправлено».Для видов, созданных в viewDidLoad
, применяется вращение, поэтому они ошибочны.Это делает настройку представлений в этих методах болезненной и действительно нелогичной.Я предполагаю, что это проблема того, как обрабатываются ориентации.Почему это ведет себя так?Я всячески говорил, что хочу только альбомную позицию.Может ли это быть что-то с Интерфейсный конструктор и свойства там?
Это использует стандарт UIViewController
.Однако новые представления также загружаются из файлов .xib в viewDidLoad
.Может ли это быть проблемой?