2013-09-23 131 views
1

我有一個使用UIWebView的應用程序。目前我使用故事板創建網頁視圖,但我想以編程方式創建它。基於窗口的iOS UIWebView大小

這需要在所有設備和iOS 5的工作 - 在iOS 6中7

目前(用故事板),它看起來像這樣: iPhone iOS 6

但在搭載iOS 7,你不明白頂部的白色條紋: iPhone iOS 7

如何以編程方式創建UIWebView,以便它可以跨所有設備填充可用窗口空間(即不會覆蓋標籤欄或狀態欄)?

感謝

//編輯 這是我的一個UIWebView

UIWebView Storyboard

//編輯2

按照建議的故事板,我這樣做,但它重疊狀態欄和標籤欄。有什麼辦法可以考慮它們嗎?

float width = [UIScreen mainScreen].bounds.size.width; 
float height = [UIScreen mainScreen].bounds.size.height; 
+0

狀態欄重疊白空間看起來。 – Ganapathy

+0

@Ganapathy它不 - 我添加了故事板的圖像 –

+0

因此,基本上你想要導航欄? –

回答

0

這是基於別人我工作回答

-(void)createWebView 
{ 
    float width = self.view.bounds.size.width; 
    float height = self.view.bounds.size.height; 
    UIWebView *wv = [[UIWebView alloc] initWithFrame:CGRectMake(0, 20, width, height)]; 
    wv.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); 
    wv.scalesPageToFit = YES; 
    wv.delegate = self; 
    [self.view addSubview:wv]; 
} 
1

嘗試以編程方式設置你的WebView幀像這樣

float width = [UIScreen mainScreen].bounds.size.width; 
NSLog(@"width: %f", width); 
float height = [UIScreen mainScreen].bounds.size.height; 
NSLog(@"height: %f", height); 

讓你的WebView框架應該是

objWeb.frame = CGRectMake(0,0,width,height); 
+0

這種方法沒有考慮到標籤欄和狀態欄 –

+0

有沒有辦法做到這一點,但不重疊這些酒吧? –

+0

@ChrisByatt:好像你從你的快照中使用自定義tabbar,所以我不知道你可能需要檢查4英寸視網膜和3.5英寸屏幕的條件,並相應地設置webview的框架。 –

0

好吧,self.view將在viewDidLoadviewWillAppear之間的某個位置調整大小。 所以,如果你想調整大小,你應該在viewWillApear

但是,我的建議是使用AutoResizeMask|[webView]|自動佈局。

AutoReszie
添加webViewself.view爲子視圖,框架設置爲self.view.boudse,然後

webView.autoResizeMask = UIViewAutoResizeMaskFliexbleHeight|UIViewAutoResizeMaskFliexbleWidth; 

讓我知道,如果你需要的autoLayout版本。

+0

這適用於標籤欄,但它仍然在iOS7中超過狀態欄 –

+0

'UIViewController'的視圖被拉伸到狀態欄下,熱修復可以將您的viewController嵌入到'UINavigationController'並將節目導航欄設置爲NO。 –

+0

使用webView.scalePagesToFit = YES;解決了我的問題:)感謝您的幫助。請參閱下面的答案 –