Subview не ориентирован должным образом - PullRequest
1 голос
/ 26 октября 2011

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

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

self.infoHUDViewController = [[[InfoHUDViewController alloc] initWithNibName:@"InfoHUD" bundle:nil] autorelease];
[self.view addSubview:self.infoHUDViewController.view];

Так что это работает очень хорошо, если подпредставление добавлено в методе viewDidLoad. Однако он не работает в ландшафтном режиме, если представление добавлено в методе IBAction, который реагирует на нажатие кнопки. Подвид выглядит как в портретном режиме (он поворачивается на 90 °, заполняет только половину ширины экрана и выходит за границы экрана).

Что действительно странно: в методе init контроллера представления подпредставления ориентация экрана правильно установлена ​​на альбомную. Я что-то здесь упускаю?

1 Ответ

2 голосов
/ 27 октября 2011

Я нашел решение этой проблемы.

Я добавил

if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) {
    self.view.frame = CGRectMake(0.0f, 0.0f, 480.0f, 320.0f);
} else {
    self.view.frame = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);
}

к viewDidLoad методу. Теперь все работает, как исключено во всех ситуациях.

...