0

このコードを使用して、リーダー ボードを表示しています。

 -(void)viewscores:(SPEvent*)event

   {
     tempVC = [[UIViewController alloc] init];


    GKLeaderboardViewController* leaderboardController = [[[GKLeaderboardViewController alloc] init] autorelease];
    if (leaderboardController != nil)
    {
        leaderboardController.leaderboardDelegate = self;
        UIView *sparrowView = self.stage.nativeView; // take care that self.stage != nil!
        [sparrowView addSubview:tempVC.view];
        //[tempVC.view addSubview:leaderboardController.view];
        [tempVC presentModalViewController:leaderboardController animated:YES];
    }
}

- (void)animationDidStop:(NSString*)animationID finished:(BOOL)finished context:(void *)context
{
    for(UIView *subview in [tempVC.view subviews]) {
        [subview removeFromSuperview];
    }
    [tempVC.view.superview removeFromSuperview];
    [tempVC release];
}

-(void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController*)viewController
{
    CGRect frame = viewController.view.frame;
    // [tempVC dismissModalViewControllerAnimated:YES];
    [UIView beginAnimations:@"curldoup" context:nil];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDuration:.5];
    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
    // [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.stage.nativeView cache:YES];
    frame.origin.y = 420;
    viewController.view.frame = frame;
    [UIView commitAnimations];
    //[viewController.view removeFromSuperview];

リーダー ボードで [完了] をクリックすると、背景が灰色になり、アプリがめちゃくちゃになります。

これが次の行によるものであることは非常に肯定的です。

frame.origin.y = 420;

iPhoneの画面は420なので、正しい番号を教えてください。

どんなアイデアでも大歓迎です、どうもありがとう!

4

1 に答える 1

1

次のように表示する必要があります。

- (void)showGCLeaderboard {
leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != NULL)
{
    leaderboardController.category = kLeaderboardID; 
    leaderboardController.leaderboardDelegate = self;
    [self presentModalViewController:leaderboardController animated:YES];
}

}

したがって、これを行うだけでそれを却下できます。

- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController {
    [self dismissModalViewControllerAnimated:YES];
    [viewController release];
}

また

iPad でこれを行おうとしているので、UIPopovers を使用して気を配ることができますが、それはあなた次第であり、必須ではありません。

于 2012-05-12T02:26:48.243 に答える