2011-08-08 3 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]; 
    } 
} 

내 UI 킷에 대한 이해가 극히 제한적입니다. 나는 Cocos2D와 Box2D와 거의 다른 것을 사용하지 않는다. (어쨌든 지금까지). 제발, 당신이 제공 할 수있는 모든 도움을 많이 주시면 감사하겠습니다. 만약 당신이 단순히 이것이 어떻게 완료 될지를 보여줄 수 있다면 (내가 가지고있는 모든 정크 코드없이) 그것은 완벽 할 것입니다. 그냥 당신이 아니에요,

난 그냥 UIModalPresentationPageSheet이 작업을 수행하려고

+0

나는이 질문 한 후 약 일주일 정도 매우 아픈 있고 난 뒤로 순전히을 주석으로되어 있습니다. 희망을 갖고 현상금이 나에게 대답을 줄 것이다 :) –

답변

1

:) 감사와 나는 같은 결과를 참조하십시오. 이렇게하는 "올바른"방법은 모달 뷰의 크기를 변경하는 것이 아닙니다! :) 애플의 UI 디자이너가 원하는 프리젠 테이션 스타일 & 업적보기의 크기를 선택했습니다; 게임을 일관성있게 유지하는 것이 가장 좋은 방법입니다.

+0

가끔은 내가 머리 뒤쪽으로 그들을 때 리고 싶다. 나는 임시 해결책을 얻을 수있는 희망을 잠시 동안 남겨 둘 예정이다. –

+0

나는 그 문제를 해결하려고하지 않는 것이 좋습니다. 왜 당신은 정말로 원하는 디자인을 우회하고 싶습니까? 또한 [버그 신고] (http://bugreport.apple.com)! :) – jtbandes

+0

iPad에서는 Game Kit의 모달 디스플레이가 실제로 작습니다. 더 많은 화면을 사용하는 것이 더 좋을 것입니다. 물론 미리 만들어진 뷰 (및 게임 센터 전체)는 정말 못 생기고 바퀴를 간단하게 재 작성하여 그 바보 같은 포커 테이블 테마를 표시하지 않아도됩니다. –

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

보기의 크기 조정이 작동하지 않습니다. 단지 정확히 같은 크기로 유지됩니다. 이유가 확실하지 않습니다. –