UIWebview全屏幕大小

我试图在UIWebview中使用设备的整个屏幕显示一个PDF,除了状态栏和顶部栏。 到目前为止,我创build了IBOutlet UIWebview *webview; 在我的.h文件中。 我在故事板中连接了webview,并在.m文件中写下了以下代码:

 - (void)viewDidLoad { [super viewDidLoad]; webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; webview.scalesPageToFit = YES; webview.autoresizesSubviews = YES; webview.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); [webview setBackgroundColor:[UIColor clearColor]]; NSString *path = [[NSBundle mainBundle] pathForResource:@"Chart" ofType:@"pdf"]; NSURL *targetURL = [NSURL fileURLWithPath:path]; NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; [webview loadRequest:request]; [self.view addSubview:webview]; } 

在我的3.5英寸的PDF显示正确,但在我的4英寸的显示屏,底部被切断。 当我旋转到横向视图时,这更加明显。 大约33%的屏幕根本不使用。 我怎样才能解决这个问题? 我知道它必须有关于我的代码上面的UIWebview维度( webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; ),但有没有更好的方法来简单地显示在整个屏幕上的webview,没有指定一个特定的屏幕高度和宽度?

一件便宜的事情就是设置webview的框架覆盖 – (void)viewDidLayoutSubviews

 - (void)viewDidLayoutSubviews { webView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); } 

在这里做的好处是视图的大小和方向已经在这里确定了,你可以得到一个精确的测量。

使用自动布局

确保没有选中“约束边界”选项,所有的约束值都是0:

在这里输入图像说明

而你的webview是你主视图的第一个孩子:

在这里输入图像说明

没有自动布局

更改webview自动连接:

在这里输入图像说明

处理iOS6,7和不同屏幕尺寸兼容性的头痛之后,我使用这个:

 - (void)viewDidLoad { [super viewDidLoad]; self.webview = [[UIWebView alloc] init]; // More setting your webview here // Set webview to full screen self.view = self.webview; [self.webview loadRequest:aRequest]; } 

通过selectResolve Auto Layout Issues菜单下的Reset to Suggested ConstraintsReset to Suggested Constraints ,我能够正确地为我工作。 在这里输入图像说明