我创建了一个子视图,用作iOS应用中的HUD。该应用程序支持纵向和横向显示方向。
即使模式为横向,子视图有时也会以纵向模式显示。子视图由以下行添加:
self.infoHUDViewController = [[[InfoHUDViewController alloc] initWithNibName:@"InfoHUD" bundle:nil] autorelease];
[self.view addSubview:self.infoHUDViewController.view];
如果在viewDidLoad
方法中添加子视图,那么它的效果非常好。但是,如果在IBAction
方法中添加视图以响应按下按钮,则它在横向模式下不起作用。子视图看起来好像处于纵向模式(它显示为90°旋转,仅填充半屏宽度,并超出屏幕边界)。
真正奇怪的是:在子视图的视图控制器的init方法中,显示方向被正确设置为横向。我在这里错过了什么吗?
答案 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
方法。现在一切都在所有情况下都是例外。