Почему автоматическое изменение размера вида не работает при первой ориентации?

После загрузки вида я изменил ориентацию на Пейзаж. Там я вижу синюю полоску и вид съезжает вниз. Когда я перехожу на другие вкладки и возвращаюсь, все работает нормально.

Кто-нибудь может мне с этим помочь?

Я сделал это, чтобы автоматически изменить размер представления:

-viewDidLoad:
{
self.view.autoresizingMask =( UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleRightMargin);
 self.view.autoresizesSubviews;
[super viewDidLoad];
}
-shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

 return YES;
}

Вот скриншот:

альтернативный текст


person bharath gangupalli    schedule 24.12.2010    source источник


Ответы (1)


Я считаю, что автоматическое изменение размера запускается до viewDidLoad, поведение не обязательно четко определено. Посмотрите, можете ли вы добавить свой параметр маски автоматического изменения размера на этапе инициализации (или даже в построителе интерфейса, если вы загружаете представление из пера). В целом, здесь требуется гораздо больше информации, чтобы помочь, но имейте в виду, что к тому времени, когда представление находится в «viewDidLoad» (в конце концов, оно уже загружено и готово к использованию), с представлением было сделано много вещей.

person Michael Petrov    schedule 24.12.2010
comment
Я пробовал в методе инициализации ..... он не работает .... В другом примере я создал представление, панель навигации и добавил (как подпредставление) в self.view. и установите маску автоматического изменения размера в методе инициализации. при указании это тот же случай. Представление появляется на 2 см ниже строки состояния в первый раз. Когда он вернулся с другой вкладки, он находится под строкой состояния, т.е. работает хорошо. - person bharath gangupalli; 24.12.2010
comment
Возможно, посмотрите, сможете ли вы использовать viewDidLoad, чтобы изменить его параметр self.frame, чтобы он находился в правильном месте. Вы должны быть в состоянии правильно определить размер окна. В конечном счете, если вы используете Interface Builder, настройка правильного автоматического изменения размера должна решить все проблемы. Я действительно только когда-либо устанавливал маски автоматического изменения размера вручную, когда я создаю объект с нуля (в этом случае он устанавливается до вызова addSubview) - person Michael Petrov; 24.12.2010