2

我正在制作一个应用程序只是为了好玩,它似乎工作正常,除了当我希望它只在一个屏幕上是横向时,它会保持纵向。我怎样才能让它在加载时自动旋转到横向?我已经尝试过了:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight ) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);   
}

但是,这似乎不起作用。只有当我旋转设备时,它才会旋转视图,然后它将保持横向,但我希望它能够在加载后立即执行,而无需用户旋转设备以使其脱离纵向。有什么我想念的吗?感谢您的所有帮助!如果您想从应用程序中获取更多代码,我将非常乐意与您分享。

4

3 回答 3

3

在 viewDidLoad 方法和 shouldautorotate 方法中添加:

 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
 [[self view] setBounds:CGRectMake(0, 0, 480, 320)];
 [[self view] setCenter:CGPointMake(160, 240)];
 [[self view] setTransform:CGAffineTransformMakeRotation(M_PI / 2)];
于 2012-06-18T01:39:53.720 回答
0

试试这个代码

@interface UIViewController(ESUtils)
    -(void)changeToPortrait;
@end

@implementation UIViewController(ESUtils)
-(void)changeToPortrait
{
    //for will call a shouldAutorotateToInterfaceOrientation func
    UIViewController *view = [[UIViewController alloc] init];
    [self presentModalViewController:view animated:NO];
    [self dismissModalViewControllerAnimated:NO];
    [view release];
}

@end
于 2012-06-18T02:18:23.997 回答
0

你想做两件事,

首先在界面构建器上,转到您想要的景观视图,并确保方向设置为横向(如果推断它会采用父方向)。您可以在属性检查器的第 4 个选项卡上的模拟指标下找到它。

现在第二个,该视图必须具有您发布的代码

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight ) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);   
}
于 2012-06-18T02:23:12.263 回答