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, но перед выполнением этой задачи потребуется некоторая переделка.