Everyplay поддерживает Пейзаж в iOS6?

Я интегрирую Everyplay с моей игрой Cocos2d. Моя игра поддерживает только альбомную ориентацию. Все идет хорошо на iPad. Но когда я тестирую на iPhone(iOS6), он вызывает следующее исключение, когда я вызываю "[[Everyplay sharedInstance] showEveryplay]": причина: "Поддерживаемые ориентации не имеют общей ориентации с приложением, и shouldAutorotate возвращает YES"

Я знаю, что механизм ориентации изменился в iOS6.Так я добавляю этот метод:

-(BOOL)shouldAutorotate{
    return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscape;
}
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
        return UIInterfaceOrientationMaskAllButUpsideDown;
}

Тогда "[[Everyplay sharedInstance] showEveryplay]" работает без исключения, но моя игра также поддерживает книжную ориентацию, которую я не хочу.

Как мне это сделать, если я хочу поддерживать только Пейзаж в моей игре, но пусть "[[Everyplay sharedInstance] showEveryplay]" работает без исключения?

2 ответа

У вас есть два варианта решения проблемы.

Опция 1:

Добавьте массив UISupportedInterfaceOrientations в info.plist вашей игры с элементами UIInterfaceOrientationPortrait, UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight и UIInterfaceOrientationPortraitUpsideDown. Вы можете легко сделать это из xCode, проверив все Поддерживаемые Ориентации Интерфейса со сводной страницы вашего проекта или отредактировав файл info.plist вручную.

Вариант 2:

Добавьте следующий метод в файл AppDelegate.m вашего приложения:

// IOS 6

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
  return UIInterfaceOrientationMaskAll;
}

В обоих случаях вы также должны убедиться, что вы добавили код обработки только альбомной ориентации в основной UIViewController вашей игры.

// IOS 5

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
  return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
}

// IOS 6

- (BOOL)shouldAutorotate {
   return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
  return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

На iPhone веб-просмотр Everyplay всегда в портретном режиме, но на iPad веб-просмотр поддерживает оба. Запись поддерживает оба режима, как и видеоплеер. Скорее всего, в ближайшем будущем мы также обновим альбомный режим для разрешения iPhone, но перед выполнением этой задачи потребуется некоторая переделка.

Другие вопросы по тегам