我在游戏中使用Facebook SDK,以便在Facebook上发布一些分数。 我的代码使用的是Cocos2D框架,因此我必须添加一些代码才能使用UIView。 一切正常,但视图以纵向显示,尽管我的笔尖属性指示横向,ShouldautoRotate方法返回横向,应用方向也是横向。 这是设置视图的代码:
// share to facebook methods
-(void)shareFacebookSelected
{
[[SimpleAudioEngine sharedEngine]stopBackgroundMusic];
[[CCDirector sharedDirector] pause];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
myViewController1 = [[HFViewController alloc] initWithNibName:@"HFViewController_iPhone" bundle:nil];
} else {
myViewController1 = [[HFViewController alloc] initWithNibName:@"HFViewController_iPad" bundle:nil];
}
UIWindow* window = [[[UIApplication sharedApplication] windows] objectAtIndex:0];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES];
[[[CCDirector sharedDirector]view] removeFromSuperview];
myViewController1.view.hidden = false;
[window addSubview:myViewController1.view];
[UIView commitAnimations];
}
我还启用了一个按钮返回正常的cocos游戏并移除了UIView但是在返回时我的主游戏方向已经变为肖像。
任何想法???
答案 0 :(得分:0)
以下几行解决了我的问题:
#define DegreesToRadians(x) ((x) * M_PI / 180.0)
CGRect screenRect = [[UIScreen mainScreen]bounds];
myViewController1.view.transform = CGAffineTransformMakeRotation(DegreesToRadians(90));
myViewController1.view.hidden = false;
myViewController1.view.frame = screenRect;
我基本上将视图旋转90度,而不是最优雅的解决方案,只是蛮力,但它的工作原理。我仍然想知道它为什么会这样做,哦,好吧