我正在尝试在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)。但没有变化。
答案 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