我目前正在使用iPad并使用Cocos2D。到目前为止,我刚刚在处理Game Center时使用默认视图进行测试。我正试图按照我想要的方式设置它,它使用全屏或PageSheet(如图所示)。
我的问题相当简单(至少在提问中)。为什么这样做呢?我无法弄清楚如何访问正在成就视图顶部的“木制”框架。
以下是我一直在使用的代码(包括我一直在尝试的随机内容)以获得更大的视图。
- (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做到这一点,我看到相同的结果,它不仅仅是你。 “正确”的方法是不改变模态视图的大小! :) Apple的UI设计师选择了他们想要的演示风格&成就视图的大小;为了游戏之间的一致性,最好不要乱用它。
答案 1 :(得分: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);