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

时间:2010-08-25 22:26:07

标签: iphone cocoa-touch uiview subview

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

目前我正在处理两个问题:

  1. 当用户旋转iPhone或iPad时,主UIView(mainView)正确自动旋转,其所有UI项目都遵循我在Interface Builder中设置的自动调整规则。但是,当显示辅助UIView(secondView),并且iPhone或iPad旋转时,第二个View&它的所有UI项都不遵循其自动调整规则。我发现当我设置self.view = secondView,然后旋转设备时,视图会正常旋转。
  2. 在iPad中,当我使用[self.view addSubview:secondView]提取第二个视图时,它不会调整大小以填充整个屏幕,就像主要的UIView已经为iPad版本调整大小一样。所以我最终得到一个在后台显示mainView UIView的屏幕,以及左上角的第二个View UIView,而不占用整个屏幕。
  3. 我的直觉告诉我,这两个问题彼此相关。是否有其他人遇到过使用addSubview:添加到UIViewControllers的辅助UIViews的这类问题?

2 个答案:

答案 0 :(得分:3)

使用addSubview时,

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

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

答案 1 :(得分:0)

我有类似的问题。我通过设置视图的内容模式解决了大小问题。

Exp:[_yourView setContentMode:UIViewContentModeScaleAspectFill];

我希望这会有所帮助......