Вопрос про ориентацию UIView

У меня есть два viewController, A и B.

Я хочу, чтобы это приложение было только для пейзажа, поэтому в A и B я перезаписываю

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

Есть два способа инициализировать B и добавить представление B в качестве подпредставления A.

1.

В viewDidLoad A я получаю объект B через метод инициализации.

B *bController = [[B alloc] init];
b.view.backgroundColor = [UIColor redColor];
[self.view addSubview:b.view];

2.

В viewDidLoad A я получаю объект B через метод initWithNib. В файле Nib Б. Я меняю ориентацию вида на LandScape и изменяю размер вида на (480 300)

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

Результат «метода 1» — (320 460), хотя устройство было повернуто в альбомную ориентацию, и вид был заполнен на весь экран.

Результат "method2" равен (480 300). Это соответствует моим ожиданиям.

Почему вывод метода 1 не (480 300), а (320 460)?

Спасибо!


person Solskjaer    schedule 28.06.2011    source источник
comment
Почему бы просто не установить для поддерживаемых ориентаций проекта только альбомную? В Xcode 4 щелкните файл проекта, перейдите в раздел «Сводка» и посмотрите «Поддерживаемые ориентации устройств». Нажмите на портретные режимы, чтобы отключить их.   -  person hundreth    schedule 28.06.2011
comment
У вас должен быть только один контроллер представления, отвечающий за всю иерархию представлений. Другими словами, вы не должны добавлять представление B в качестве подпредставления представления A. Контейнерные контроллеры, такие как UINavigationController, являются очевидным исключением, но у них нет собственных представлений.   -  person Caleb    schedule 28.06.2011


Ответы (1)


измените свойство autoSizing subView, вот и все.

person Solskjaer    schedule 03.07.2011