【发布时间】:2011-02-09 04:55:48
【问题描述】:
注意:这可能与Subview Doesnt AutoSize When Added to Root View Controller 重复
我有一个 iPad 应用程序,可以在其主窗口的不同视图之间切换。视图切换代码如下所示:
- (void)switchToViewController:(UIViewController*)viewController {
if (currentViewController != viewController) {
[currentViewController.view removeFromSuperview];
currentViewController = viewController;
[window addSubview:viewController.view];
}
}
问题是当新视图(UISplitView)以横向显示时,它的大小无法填满整个窗口。右边有一大片空白的黑色空间。看起来视图只有 768 像素宽,而不是横向窗口的 1024 像素宽。
如果我将设备旋转为纵向,然后再旋转回横向,则视图本身的大小会正确。
如果设备处于纵向,则一切正常。如果 UISplitView 是我显示的第一个视图,它的大小也会正确。仅当我在以横向显示另一个视图后切换到它时才会出现此问题。
那么,有没有办法强制 iPhone OS 在视图添加到窗口后调整其大小?
我试过打电话给sizeToFit 和setNeedsLayout。我还尝试将视图的bounds 设置为窗口的bounds,并尝试将frame 设置为与前一个视图的框架相匹配。
【问题讨论】:
标签: iphone uiview ipad uiwindow