У меня есть представление, которое было создано в Интерфейсном Разработчике и настроено для изменения размера в соответствии с ориентацией.Если представление создается и добавляется на дисплей, когда приложение находится в портретном режиме, все работает отлично.Затем я могу повернуть устройство / симулятор, и вид изменится, как я и ожидал.Но, если представление добавляется, когда приложение находится в альбомном режиме, оно изменяется неправильно.Вид создается и имеет размеры, как будто приложение все еще находится в портретном режиме.Вид дополнен следующим кодом:
self.viewController = [[MyViewController alloc] initWithNibName:nibName bundle:bundle];
[self addSubview:self.viewController.view];
Ничего волшебного здесь не происходит.Кроме того, контроллер представления указывает:
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
Опять же, он работает, как и ожидалось, пока представление добавляется в портретном режиме.Я пробовал несколько разных вещей, включая ручную установку свойства autoresizingMask в представлении, вызов setNeedsLayout и вызов layoutIfNeeded, но, похоже, ничего не работает.Я могу вручную установить ширину и высоту фрейма, чтобы заставить размер окна изменить размер, но это нарушает динамический характер вида.Например, если я вручную установлю ширину, высота не будет изменена, так как содержимое не будет перекомпоновано.
Есть идеи?