iOS:当另一个视图移动时,如何旋转视图控件?

时间:2012-06-18 01:36:37

标签: iphone xcode rotation autorotate

我正在制作一个应用程序只是为了好玩,它似乎工作得很好,除了事实,当我希望它只在一个屏幕上的风景,它将保持肖像。如何制作它以便在加载时自动旋转到横向? 我已经尝试过了:

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

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

3 个答案:

答案 0 :(得分: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)];

答案 1 :(得分: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

答案 2 :(得分:0)

你想做两件事,

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

现在第二,该视图必须包含您发布的代码

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