Почему мой ModalView отображается в портретном режиме? - PullRequest
0 голосов
/ 09 ноября 2011

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

- (void)showSplash
{    
UIView *modelView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024 , 748)];

UIViewController *modalViewController = [[UIViewController alloc] init];
[modelView setBackgroundColor:[[UIColor alloc] initWithPatternImage:[UIImage     imageNamed:@"Splash.png"]]];

modalViewController.view = modelView; 

[self presentModalViewController:modalViewController animated:NO];


[self performSelector:@selector(hideSplash) withObject:nil afterDelay:5.0];

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

Заранее спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Похоже, вы пишете приложение для iPad.Если это так, вы должны поддерживать как альбомную, так и книжную ориентацию, в противном случае Apple отклонит ее.Я хотел бы предложить вам использовать два разных изображения.Характеристики изображения следующие:

  1. Default-Landscape.png (1004 * 768)
  2. Default-Portrait.png (748 * 1024)

(Я предполагаю, что вы показываете строку состояния, если не добавляете 20 пикселей к высоте изображения)

Вот и все, создайте эти изображения и добавьте их в свой проект.И тебе хорошо идти.Нет необходимости писать какой-либо дополнительный фрагмент кода ..

И вы сделаете это

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
0 голосов
/ 10 ноября 2011

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

Если вы делаете это в коде, я полагаю, что в начале приложения ориентация всегда рассматривается как портретная, а затем происходит переход к фактической ориентации. Это объясняет, почему ваш код отображается сначала в виде портрета, и, скорее всего, в коде больше ничего нет для обработки поворота. Кроме того, целью заставки является отображение чего-либо во время загрузки приложения, поэтому, если вы вставите это в код, вы потеряете цель.

Делая это способом Apple, вы оставляете его другому процессу Apple, который запускается перед просмотром кода, и он будет работать.

Что касается поддерживаемой ориентации, у меня на iPad есть несколько приложений, которые поддерживают только альбомную ориентацию (например, TapZoo), поэтому с Apple все должно быть в порядке.

...