2013-08-31 158 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