iOS UIWebView基于窗口的大小

时间:2013-09-23 11:54:27

标签: iphone ios objective-c ipad uiwebview

我有一个使用UIWebView的应用程序。目前我使用故事板创建Web视图,但我想以编程方式创建它。

这需要适用于所有设备和iOS 5 - 7。

目前(在iOS 6中使用故事板)它看起来像这样: iPhone iOS 6

但是在iOS 7中你没有得到顶部的白条: iPhone iOS 7

如何以编程方式创建UIWebView,以便在所有设备上填充可用的窗口空间(即不会覆盖标签栏或状态栏)?

由于

// EDIT 这是我的UIWebView的故事板

UIWebView Storyboard

//编辑2

根据建议我这样做但它与状态栏和标签栏重叠。有没有办法考虑它们?

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

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分: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);

答案 2 :(得分:0)

好的,self.view将在viewDidLoadviewWillAppear之间的某个位置调整大小。 因此,如果您想调整大小,则应在viewWillApear中进行。

但是,我的建议是使用AutoResizeMask|[webView]|进行自动布局。

<强> AutoReszie
将您的webView添加到self.view作为子视图,将框架设置为self.view.boudse,然后

webView.autoResizeMask = UIViewAutoResizeMaskFliexbleHeight|UIViewAutoResizeMaskFliexbleWidth;

如果您需要autoLayout版本,请告诉我。

答案 3 :(得分: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];
}