风景屏幕以20px向右移动

时间:2010-02-19 16:22:10

标签: iphone

我正在尝试在iphone上旋转屏幕。例如, 屏幕的第一个状态:是“肖像”。 然后它调用“风景”屏幕。以下代码用于制作横向屏幕:

- (void)viewDidLoad {
    [super viewDidLoad];
    [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;
    CGFloat angle = 90 * M_PI / 180;
    self.view.transform = CGAffineTransformMakeRotation(angle);
    self.view.center = [nRangeAppDelegate sharedAppDelegate].window.center;
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, 480, 44)];
    label.textAlignment = UITextAlignmentLeft;
    label.numberOfLines = 2;
    label.text = @"12345\n67890";
    [self.view addSubview:label];
}

但是上面的代码在20 px中向右移动。

如何在点0,0制作480x320视图无移位?

提前致谢。

更新

我的应用程序导航应用程序。所有UIViewControllers都有一个UIView。在调用我正在尝试旋转的视图时,使用以下代码:MyRoratedController * myCtrlr = [[MyRoratedController alloc] initWithNibName:@“MyRoratedController”bundle:nil]; [navigationController pushViewController:myCtrlr animated:NO];我用许多不同的值改变了CGPointMake(160.0,240.0)。但没有变化。

1 个答案:

答案 0 :(得分:0)

您的窗口已移动,因为appDelegate窗口未在屏幕中居中,因为它位于状态栏下方

试试这个:

self.view.center = CGPointMake(160.0, 240.0);

您必须确保将此视图添加到普通视图控制器(即不是导航控制器或类似控制器)。最简单的方法是将其添加到主应用程序窗口,如下所示:

MyRoratedController *myCtrlr = [[MyRoratedController alloc] 
  initWithNibName:@"MyRoratedController" bundle:nil]; 
[window addSubview:[myCtrlr view]];

请注意,如果您的应用显示了状态栏,则必须将上面的160更改为150