2013-08-31 66 views
9

我想在UIWebview中使用设备的整个屏幕(状态栏和顶部栏除外)显示pdf。到目前为止,我在我的.h文件中创建了IBOutlet UIWebview *webview;。我连接在网页视图在我的故事板并写在我的.m文件以下代码:UIWebview全屏大小

- (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]; 

} 

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

回答

29

一个便宜的事情是设置在覆盖web视图的框架 - (无效)viewDidLayoutSubviews

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

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

+0

我加入这个代码,但有一个错误:“分配给来自不兼容的类型‘诠释’的CGRect“(又名‘结构的CGRect’)... –

+1

我只是做了 - (无效)viewDidLoad中 { [superviewDidLoad]; \t webview = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)];现在它工作!谢谢! –

+0

如果有人想知道,它的工作原因是因为你将CGRectmake更正为CGRectMake,而不是因为它改成了initWithFrame。 –

2

很多头痛处理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]; 
} 
+1

当您替换控制器的视图属性时,您可以通过在loadView方法中分配self.view来防止首先创建它。 – radiospiel

10

使用自动布局

一定的“约束到边缘”选项未被选中,所有的限制值是0:

enter image description here

和你,我们bview是你的主要观点的第一个孩子:

enter image description here

没有自动布局

更改网页流量自动调整大小的连接:

enter image description here

0

我能得到这个工作正常对我来说,通过在Resolve Auto Layout Issues菜单下选择Reset to Suggested Constraintsenter image description here