UIView autoresizingmask不适合我

joh*_*ohn 6 iphone uiviewcontroller uiview

我已将我的应用设置为自动旋转功能.tableviewcontrollers和tabbarcontrollers之类的东西会自动调整它们的大小,而不需要我编写任何代码.但是,当设备转为横向时,我需要我的webview等来调整大小.我设置:

    webView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
Run Code Online (Sandbox Code Playgroud)

但是当我旋转设备时它不会调整大小.我这是错误地实现了吗?

小智 16

我想我终于搞清楚了.似乎NIB文件的根视图不允许您为界面构建器中的自动调整掩码指定灵活宽度和灵活高度(至少从3.2开始).看一看.将以下代码放入您的代码viewDidLoad似乎可以解决问题:

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
Run Code Online (Sandbox Code Playgroud)

我在super通话结束后做到了.


Ale*_*lds 4

我在视图控制器中实现以下内容:

- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    [self.webView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
}
Run Code Online (Sandbox Code Playgroud)

看起来效果不错。

  • 我正在使用您的解决方案,只要我至少旋转设备一次,它就可以很好地工作。如果我的视图在纵向时加载,它不会渲染调整大小到屏幕的大小,当然,直到我旋转设备。我如何设置它以便它在加载视图时改变? (2认同)