Subview没有正确定位

时间:2011-10-26 07:55:50

标签: ios subview addsubview

我创建了一个子视图,用作iOS应用中的HUD。该应用程序支持纵向和横向显示方向。

即使模式为横向,子视图有时也会以纵向模式显示。子视图由以下行添加:

self.infoHUDViewController = [[[InfoHUDViewController alloc] initWithNibName:@"InfoHUD" bundle:nil] autorelease];
[self.view addSubview:self.infoHUDViewController.view];

如果在viewDidLoad方法中添加子视图,那么它的效果非常好。但是,如果在IBAction方法中添加视图以响应按下按钮,则它在横向模式下不起作用。子视图看起来好像处于纵向模式(它显示为90°旋转,仅填充半屏宽度,并超出屏幕边界)。

真正奇怪的是:在子视图的视图控制器的init方法中,显示方向被正确设置为横向。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:2)

我找到了解决此问题的方法。

我添加了

if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) {
    self.view.frame = CGRectMake(0.0f, 0.0f, 480.0f, 320.0f);
} else {
    self.view.frame = CGRectMake(0.0f, 0.0f, 320.0f, 480.0f);
}

viewDidLoad方法。现在一切都在所有情况下都是例外。