UIView自动调整大小掩码对我不起作用

6

我已经设置好我的应用程序,使得自动旋转功能正常工作。像tableviewcontrollers和tabbarcontrollers这样的内容可以在不需要编写任何代码的情况下自动调整大小。然而,当设备转换为横屏模式时,我需要我的webview等内容也能够自动调整大小。我进行了如下设置:

    webView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

但是当我旋转设备时,它并没有自适应大小。我实现有误吗?
2个回答

16

我想我终于弄清楚了。似乎在 NIB 文件的根视图中,你无法在界面构建器中指定自动调整掩码的宽度和高度的灵活性(至少在3.2版本中不行)。看一下这个。将以下代码放入你的viewDidLoad中似乎可以解决问题:

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

super调用之后,我完成了它。


4
我在我的视图控制器中实现了以下内容:
- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    [self.webView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
}

看起来运行良好。


我刚刚尝试了一下,但似乎在旋转模拟器时没有被调用。我在那里放了一个NSLOG,但它没有被打印出来。 - john
1
你是把这个放在视图控制器里吗?你有覆盖其他旋转方法,比如 -shouldAutorotateToInterfaceOrientation: 吗? - Alex Reynolds
2
我正在使用您的解决方案,只要我至少旋转设备一次,它就可以很好地工作。如果我的视图在纵向加载时没有调整为屏幕大小,直到我旋转设备为止。如何设置它,使其在视图加载时立即更改? - A Salcedo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接