我的游戏使用 cocos2d 横向模式。当我需要展示 View Controller 时,它们也处于横向模式,例如游戏中心和商店 View Controller 。
存储 View Controller 适用于 ios6 及之前的版本(看起来有点奇怪,因为内容仍处于纵向模式),但它在 ios7 上崩溃。游戏中心仍然可以正常工作。
请注意,商店 View Controller 和游戏中心 View Controller 仍然适用于 ios7 上的纵向模式。
那么是否可以将商店 View Controller 设置为仅纵向? (而游戏中心 View Controller 仍处于横向)
我使用这段代码来展示商店 View Controller :
if ([SKStoreProductViewController class] != nil) {
//create store view controller
SKStoreProductViewController *productController = [[SKStoreProductViewController alloc] init];
productController.delegate = (id<SKStoreProductViewControllerDelegate>)self;
//load product details
NSDictionary *productParameters = @{SKStoreProductParameterITunesItemIdentifier:url};
[productController loadProductWithParameters:productParameters completionBlock:^(BOOL result, NSError *error) {
if (!result) NSLog(@"Error: %@", error);
}];
[[(AppController*)[[UIApplication sharedApplication] delegate] navController] presentViewController:productController animated:YES completion:nil];
} else {
url = [NSString stringWithFormat:@"https://itunes.apple.com/app/id%@?mt=8", url];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}
上面的 url 是一个 app id 字符串
编辑:
我试过
productController.view.transform = CGAffineTransformMakeRotation(M_PI / 2);
但它仍然在风景中
最佳答案
您可以将 SKStoreProductViewController 子类化,使其仅支持肖像方向,例如
@implementation PortaitStoreProductViewController
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
- (BOOL)shouldAutorotate
{
return NO;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}
然后像这样使用它
SKStoreProductViewController *productController = [[PortaitStoreProductViewController alloc] init];
关于ios - cocos2d 横向游戏目前纵向 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17498941/