5

我有一个以非常简单的方式使用 GameCenter 的应用程序(只是一个历史最高分的简单排行榜)。有时,当我切换到我的应用程序时,我会看到“欢迎回到 Game Center”的通知,但有时此通知会像下图一样被挤压:

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 度,它会在横向看起来正常,但在纵向看起来会全部被压扁。这有助于解释吗?

4

1 回答 1

2

我想到了。我还没有实现 preferredInterfaceOrientationForPresentation 所以我做到了

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

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

- (NSUInteger)supportedInterfaceOrientations
{
    return  UIInterfaceOrientationMaskPortrait;
}
于 2013-11-11T04:15:48.447 回答