GameCenter通知横幅有时会出现“压扁” - 可能导致这种情况的原因是什么?

时间:2013-11-02 21:19:02

标签: ios cocoa-touch notifications game-center

我有一个以非常简单的方式使用GameCenter的应用程序(只是一个具有所有时间高分的简单排行榜)。有时当我切换到我的应用程序时,我会看到通知说“欢迎回到游戏中心”,但有时这个通知会出现如下图所示:

http://i.imgur.com/KOCFIJo.jpg

有人知道造成这种情况的原因是什么吗?因为我完全不知道。

生成通知横幅的验证码非常标准。

GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];

    [GKLocalPlayer localPlayer].authenticateHandler = ^(UIViewController *viewController, NSError *error) {
        // If there is an error, do not assume local player is not authenticated.
        if (localPlayer.isAuthenticated) {

            // Enable Game Center Functionality
            self.gameCenterAuthenticationComplete = YES;
            [self enableGameCenter:YES];
            gameCenterButton.enabled=true;

        } else {
            NSLog(@"game center not logged in");
            // User has logged out of Game Center or can not login to Game Center, your app should run
            // without GameCenter support or user interface.
            self.gameCenterAuthenticationComplete = NO;
            [self enableGameCenter:NO];
            [self presentViewController:viewController animated:true completion:nil ];
            gameCenterButton.enabled=false;

        }
    };

另外一条信息是,当出现此问题时,我的应用程序处于纵向方向。看起来如果我在横幅显示时将手机旋转90度,它通常会在风景中看起来,但在纵向看起来它看起来都是压扁的。这有助于解释它吗?

1 个答案:

答案 0 :(得分:2)

我明白了。我没有实现preferredInterfaceOrientationForPresentation所以我做了

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

并且我还确保supportedInterfaceOrientations returend UIInterfaceOrientationMaskPortrait(注意它返回UIInterfaceOrientationMASKPortrait而不仅仅是UIInterfaceOrientationPortrait)。之后一切正常。

- (NSUInteger)supportedInterfaceOrientations
{
    return  UIInterfaceOrientationMaskPortrait;
}