Не меняет размеры при повороте устройства после загрузки nibfromfile - PullRequest
0 голосов
/ 10 августа 2011

У меня следующий вопрос:

Я получил некоторый код, который вызывается при входе пользователя в систему. Код должен вызывать другой контроллер представления и отображать другое представление. Чтобы показать в новом виде, я получил следующий код:

[scrollView removeFromSuperview];

Form1 *formcontroller1 = [[Form1 alloc] initWithNibName:@"Form1" bundle:[NSBundle     mainBundle]];

[self.view setAutoresizesSubviews:YES];

[self.view addSubview:formcontroller1.view];

[scrollView release];

Проблема в том, что когда загружается другой вид и я поворачиваю устройство, вид нового кончика изменяется неправильно.

EDIT:

Я не отклонял текущий viewcontroller, поэтому некоторые свойства остались. Что я сделал, это:

[scrollView removeFromSuperview];

[self dismissModalViewControllerAnimated:YES];

Form1 *formcontroller = [[Form1 alloc] init];

[self presentModalViewController:formcontroller animated:YES];

[scrollView release];

1 Ответ

1 голос
/ 10 августа 2011

Вы должны проверить свойства автоматического изменения размера представления пера в Интерфейсном Разработчике ...

Это должно выглядеть как на картинке:

enter image description here

Средние стрелки затемнены, но все еще активны. Здесь устанавливается авторазмер. Вы можете попытаться установить это свойство программно, назначив в вашем контроллере метод viewDidLoad:

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

Вы также должны убедиться, что и ваш вид, и его суперпредставление проверяли кнопку «autoresize subviews» (на первой панели инспектора в IB)

СТАРЫЙ ОТВЕТ:

Как Form1 - должен определенAutorotateToInterfaceOrientation: определен?

По умолчанию этот метод возвращает YES только для ориентации UIInterfaceOrientationPortrait. Если ваш контроллер представления поддерживает дополнительные ориентации, переопределите этот метод и верните YES для всех поддерживаемых ориентаций.

Ваша реализация этого метода должна просто возвращать YES или NO на основе значения в параметре interfaceOrientation. Не пытайтесь получить значение свойства interfaceOrientation или проверяйте значение ориентации, сообщаемое классом UIDevice. Ваш контроллер вида может поддерживать заданную ориентацию или нет.

например:.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {   
   return YES;
}

для поддержки всех ориентаций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...