Примечание: это может быть дубликат Subview не имеет автоматического размера при добавлении в контроллер корневого представления
У меня есть приложение для iPad, которое переключается между различными видами в главном окне. Код переключения вида выглядит так:
- (void)switchToViewController:(UIViewController*)viewController {
if (currentViewController != viewController) {
[currentViewController.view removeFromSuperview];
currentViewController = viewController;
[window addSubview:viewController.view];
}
}
Проблема в том, что когда новый вид (UISplitView) отображается в горизонтальной ориентации, он не имеет размера, чтобы заполнить все окно. Справа - большое пустое черное пространство. Похоже, что его ширина составляет всего 768 пикселей, а не 1024-пиксельное окно пейзажа.
Если я поверну устройство в портретную ориентацию, а затем вернусь в альбомную ориентацию, размеры изображения будут правильными.
Если устройство находится в портретной ориентации, все работает нормально. UISplitView также получает правильный размер, если это первый вид, который я показываю. Проблема возникает только в том случае, если я переключаюсь на нее после отображения другого вида в альбомной ориентации.
Итак, есть ли способ заставить iPhone OS изменить размер представления после его добавления в окно?
Я пытался звонить sizeToFit
и setNeedsLayout
. Я также попытался установить bounds
представления для окна bounds
, и я попытался установить frame
, чтобы соответствовать кадру предыдущего представления.