2011-08-08 2 views
0

私は現時点でiPadで作業しており、Cocos2Dを使用しています。今まで私はGame Centerを扱うときにデフォルトビューでテストしています。私は現在、フルスクリーンまたはPageSheet(画像に表示されている)のいずれかを使用して、私が望むように設定しようとしています。GKAchievementViewControllerフルスクリーン(またはPageSheet)の奇数表示

私の質問はかなりシンプルです(少なくとも質問してみると)。なぜそれは正確にそれをしていますか?私は成果の視点の上に描かれているその "木の"フレームにアクセスする方法を理解できません。ここで

Example image

私は大きなビューを取得するために(私がしようとしているのランダムなものを含む)を使用しているコードです。

- (void)showAchievements:(id)sender 
{ 
    GKAchievementViewController *achievements = [[GKAchievementViewController alloc] init]; 
    if (achievements != nil) 
    { 
     achievements.achievementDelegate = self; 

     tempVC = [[UIViewController alloc] init]; 
//  tempVC.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

//  tempVC.interfaceOrientation = [[UIDevice currentDevice] orientation]; 

     [achievements shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeLeft]; 
     [achievements shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight]; 

     [tempVC shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeLeft]; 
     [tempVC shouldAutorotateToInterfaceOrientation:UIInterfaceOrientationLandscapeRight]; 


//  achievements.navigationController.modalPresentationStyle = UIModalPresentationPageSheet; 
//  tempVC.wantsFullScreenLayout = YES; 
     tempVC.modalPresentationStyle = UIModalPresentationPageSheet; 
     tempVC.view.superview.bounds = CGRectMake(0, 0, winSize.width, winSize.height); 
//  tempVC.view.superview 
//  tempVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
//  achievements.wantsFullScreenLayout = YES; 
     achievements.modalPresentationStyle = UIModalPresentationPageSheet; 
//  achievements.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
     achievements.navigationController.modalPresentationStyle = UIModalPresentationPageSheet; 
//  achievements. = CGRectMake(0, 0, winSize.width, winSize.height); 

     [[[CCDirector sharedDirector] openGLView] addSubview:tempVC.view]; 
     [tempVC presentModalViewController:achievements animated:YES]; 
    } 
} 

私のUIKitの理解は非常に限られています。私はCocos2DとBox2Dを使用しています。あなたが提供できるヘルプは非常に高く評価されます。もし、これが(私がそこに持っているすべてのジャンクコードなしで)これがどのように適切に行われるのかを単に私に見せてくれれば、それは完璧だろう。

ありがとうございました:)

+0

を私はこれを尋ね、次いで約一週間かそこらのために非常に病気になったと私は戻ってないコメントとしてそんなに来ます。うまくいけば賞金は私に答えを得るでしょう:) –

答えて

1

を私はちょうどUIModalPresentationPageSheetでこれを行うことを試みたと私は同じ結果を参照してください、それはあなただけではありません。これを行う「正しい」方法は、モーダルビューのサイズを変更することではありません! :)アップルのUIデザイナーは、希望のプレゼンテーションスタイル&の達成度のビューのサイズを選択しました。それはゲーム間の一貫性のために、それを混乱させないことをお勧めします。

+0

時々私は頭の後ろにそれらを叩くことができたらいいなあ。私は回避策を得ることを期待して、しばらく質問を開いたままにします。 –

+0

私は本当にそれを回避しようとすることをお勧めしません。なぜあなたは本当に彼らが望むデザインを回避したいのですか?また、[バグを報告](http://bugreport.apple.com)! :) – jtbandes

+0

iPad上のゲームキットのモーダル表示は本当に小さいです。スクリーンの多くを使う方が良いでしょう。もちろん、プレビューされたビュー(とゲームセンター全体)は本当に醜いので、私は単にホイールを再発明するだけで、その愚かなポーカーテーブルのテーマを表示する必要はありません。 –

0

これで利用できるカスタマイズはあまりありません。必要な場合は、データを取得して表示する必要があります。

ビューのサイズを420x512に設定すると、正しく表示されます。

このような何か試してみてください:

 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    { 
     // The device is an iPad running iPhone 3.2 or later. 

     leaderboardController.view.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90.0f)); 
     leaderboardController.view.bounds = CGRectMake(0, 0, 420, 512); 
     //leaderboardController.view.center = CGPointMake(240, 160); 
     leaderboardController.view.center = CGPointMake(364, 512); 
+0

助けてくれてありがとう、ありがたいことに、うまくいきません。 –

+0

どの部分がうまくいかないのですか? 1行目はiPadに続くコードの実行のみを指定します。次にGCリーダーボードコントローラのビューをどのように移動できるかを示すためにいくつかの行が表示されます。一部のアプリでうまく機能します – whaleshark

+0

ビューのサイズ変更が機能しません。ちょうど同じサイズのままです。なぜ私は分からない。 –

関連する問題