UIView子视图不是自动旋转或自动调整大小的iPad

问题描述:

在我的iPhone应用程序中,我有一个带有两个子视图的UIViewController:一个主UIView(让我们称之为mainView)和一个辅助UIView(我们称之为secondView),它是通常隐藏但有时会显示(例如用户设置)。在我的UIViewController中,self.view被设置为mainView。当用户切换到子视图时,我打电话[self.view addSubview:secondView],当用户切换回主UIView时,我打电话[secondView removeFromSuperview]UIView子视图不是自动旋转或自动调整大小的iPad

有其本人目前处理两个问题:

  1. 当用户旋转iPhone或iPad,主要的UIView(MAINVIEW)autorotates妥善及其所有UI项目遵循其自动调整大小规则,我已经在Interface Builder中设置好了。但是,当显示辅助UIView(secondView)并且iPhone或iPad旋转后,其所有UI项目都不会遵循其自动调整规则。我发现,当我设置self.view = secondView,然后旋转设备时,视图正确旋转。
  2. 在iPad中,当我使用[self.view addSubview:secondView]拉起第二个视图时,它不会调整大小以填充整个屏幕,就像主版本的UIView已调整大小。所以我最终得到了一个屏幕,它在后台显示mainView UIView,在左上角显示secondView UIView,而不占用整个屏幕。

我的直觉告诉我,这两个问题是相互关联的。有没有其他人遇到这种类型的问题与辅助UIViews,他们添加到他们的UIViewControllers使用addSubview:

+0

我在与iOS6的iPhone上有类似的经历。我有一个通常隐藏的子视图,只要坚持以肖像为导向,即使其他一切都是以景观为导向的。它就像从来没有理解它是视图层次结构的一部分,所有视图都旋转了。 – 2013-06-19 18:05:42

当使用addSubview

[secondView setFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 

不是很优雅。但它对我有用:

我有一个类似的问题。我通过设置视图的内容模式来解决尺寸问题。

Exp:[_yourView setContentMode:UIViewContentModeScaleAspectFill]; 

我希望这有助于...

+0

你应该在'''之间格式化你的代码,或者在代码之前使用4个空格。有一个帮助格式化代码的按钮。 – 2013-11-01 21:03:01