私のアプリケーションは横向きのみをサポートしています。iOS6 の iPhone でのみ、Game Center Leaderboard の向きが正しくなく、部分的に画面からはみ出すという問題があります。添付資料参照:
次のように FPPopover を使用して、View Controller からモーダル UITableView を呼び出しています。
HighScoresController *controller = [[HighScoresController alloc] init];
FPPopoverController *popover = [[FPPopoverController alloc] initWithViewController:controller];
popover.arrowDirection = FPPopoverNoArrow;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
popover.contentSize = CGSizeMake(350,450);
else
popover.contentSize = CGSizeMake(350,350);
popover.delegate = self;
popover.title = @"High Scores";
[popover presentPopoverFromPoint: CGPointMake(mainView.center.x, self.view.center.y + 50)];
次に、このテーブルの行の 1 つがクリックされると、Game Center の適切なリーダーボードが呼び出されます。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// authenticate into game center
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error){
if (error ==nil) {
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != nil)
{
leaderboardController.leaderboardDelegate = self;
leaderboardController.timeScope = GKLeaderboardTimeScopeAllTime;
leaderboardController.category = [leaderboardIDs objectAtIndex:[indexPath row]];
[self presentViewController: leaderboardController animated: YES completion:nil];
}
} else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Game Center"
message:@"You need to sign into Game Center in order to view high scores" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
[alert show];
}
}];
}
この問題を解決する方法についてのアイデアはありますか? iOS 5 では iPhone で問題なく、iPad では iOS 5 と 6 の両方で問題ありません。
ありがとう!