Принудительно запустить приложение iOS в альбомном режиме - PullRequest
7 голосов
/ 20 января 2012

Я занимаюсь разработкой приложения для iOS 5, которое должно работать в ландшафтном режиме. Моя проблема в том, что я не могу заставить его перевернуться.

Я пробовал добавить «Начальная ориентация интерфейса», установленную в «Пейзаж (правая домашняя кнопка)» и добавив следующий метод в мой контроллер вида:

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

Я могу обернуть голову, как это должно работать. (Я нашел код здесь )

Мне также интересно, как использовать «Поддерживаемую ориентацию устройства», доступную в настройках проекта Xcode 4.2, похоже, она ничего не делает.

Я просматривал сайт и не смог найти пример, который решает мою проблему.

Спасибо.

Ответы [ 5 ]

16 голосов
/ 20 января 2012

В файле Info.plist вашего приложения добавьте ключ UIInterfaceOrientation и установите его значение в ландшафтном режиме.Для альбомной ориентации вы можете установить значение этой клавиши на UIInterfaceOrientationLandscapeLeft или UIInterfaceOrientationLandscapeRight.

Разместите ваши виды в ландшафтном режиме и убедитесь, что их параметры автоматического изменения размера установлены правильно.

Переопределите метод shouldAutorotateToInterfaceOrientation: вашего контроллера представления и верните YES только для желаемой альбомной ориентации и NO для портретной ориентации.

11 голосов
/ 20 января 2012

используйте следующее в appDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];

и установите необходимые ориентации в

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

//Here are some iOS6 apis, used to handle orientations.
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0) 
- (NSUInteger)supportedInterfaceOrientations - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
1 голос
/ 20 января 2012

Когда вы нажимаете на название вашего проекта в XCode и выбираете цель в TARGETS, на вкладке Summary появляется визуальное представление поддерживаемых настроек ориентации устройства. Вот как мне удалось это сделать.

0 голосов
/ 20 января 2012

Попробуйте, это поможет вам, напишите этот код в viewdidload.

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
0 голосов
/ 20 января 2012

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

...