2010-09-27 100 views
0

我创建了一个尺寸为320像素宽度和120像素高度的小UIView。 我正在使用以下代码将视图添加到最上方的窗口。iphone - 处理视图旋转

baseview.frame = CGRectMake(0,20,320,120); 
UIWindow* window = [[UIApplication sharedApplication] keyWindow]; 
[window addSubview:baseView];  
[window bringSubviewToFront:baseView]; 

上面的代码在状态栏下方显示一个视图,如预期的那样。 当应用的方向是纵向时,这工作正常。但是,当应用程序的方向反转的画像,我添加的一行代码来旋转视图,这是

[baseView setTransform:CGAffineTransformMakeRotation(-M_PI/2)]; 

但现在,我看到在应用程序底部的观点(而不是在状态栏下方顶部看到)和基本视图旋转并正常出现,除了底部的位置。我应该如何处理这种情况以在状态栏下显示视图。

回答

0

如果您将有问题的视图作为子视图添加到窗口中的主视图中,则会为您处理旋转和定位。

如果你确实需要添加视图作为关键窗口的子视图,我认为你需要调整视图的中心。

+0

即使我试图设置视图的中心。它仍然无法正常工作。我怀疑的问题是0,0坐标以纵向模式左上角开始。即使在旋转设备之后,坐标也将具有相同的位置。这就是为什么它不会改变到最佳位置。 – Satyam 2010-09-27 10:06:17

+0

你不能添加视图作为子视图到主视图吗?既然这样可以解决问题,除了我很少需要添加一个视图作为子视图到主窗口。 – 2010-09-27 10:09:22

+0

我同意你的意见。我正在尝试创建我自己的警报视图,这是我想添加到主窗口中的一种东西。即使键盘出现,我的警报应该在应用程序上方。最后,设置中心解决了我的问题。感谢您的信息 – Satyam 2010-09-27 10:13:31