【发布时间】:2010-08-25 22:26:06
【问题描述】:
在我的 iPhone 应用程序中,我有一个带有两个子视图的 UIViewController:一个主 UIView(我们称之为 mainView)和一个辅助 UIView(我们称之为 secondView),它通常是隐藏的,但有时会显示(例如用户设置) .在我的 UIViewController 中,self.view 设置为 mainView。当用户切换到子视图时,我调用[self.view addSubview:secondView],当用户切换回主UIView时,我调用[secondView removeFromSuperview]。
我目前正在处理两个问题:
- 当用户旋转 iPhone 或 iPad 时,主 UIView (mainView) 会正确自动旋转,并且它的所有 UI 项都遵循我在 Interface Builder 中设置的自动调整大小规则。但是,当显示辅助 UIView (secondView) 并且旋转 iPhone 或 iPad 时,secondView 及其所有 UI 项不遵循其自动调整大小规则。我发现当我设置
self.view = secondView,然后旋转设备时,视图旋转正常。 - 特别是在 iPad 中,当我使用
[self.view addSubview:secondView]拉起 secondView 时,它不会调整大小以填充全屏,就像主 UIView 已针对 iPad 版本调整大小一样。所以我最终得到了一个屏幕,它在后台显示 mainView UIView,在左上角显示 secondView UIView,而不占用整个屏幕。
我的直觉告诉我,这两个问题是相互关联的。有没有其他人在使用 addSubview: 添加到 UIViewControllers 的辅助 UIViews 时遇到过这类问题?
【问题讨论】:
-
我在 ios6 的 iPhone 上也有类似的体验。我有一个通常隐藏的子视图,即使其他所有内容都面向横向,它也坚持面向纵向。就好像它从来没有费心去理解它是视图下面的视图层次结构的一部分,所有这些视图都已旋转。
标签: iphone cocoa-touch uiview subview