1

我有一个使用 UIWebView 的应用程序。目前我使用情节提要创建 Web 视图,但我想以编程方式创建它。

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

目前(使用情节提要)在 iOS 6 中它看起来像这样: 苹果iOS 6

但在 iOS 7 中,您不会在顶部看到那个白条: 苹果iOS 7

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

谢谢

//编辑这是我的 UIWebView 故事板

UIWebView 故事板

//编辑2

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

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

3 回答 3

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);
于 2013-09-23T12:03:58.333 回答
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];
}
于 2013-09-23T15:49:15.397 回答
0

好的,self.view将在viewDidLoad和之间的某个位置调整大小viewWillAppear。所以,如果你想调整大小,你应该在viewWillApear.

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

AutoReszie
将您添加webViewself.view子视图,将框架设置为self.view.boudse,然后

webView.autoResizeMask = UIViewAutoResizeMaskFliexbleHeight|UIViewAutoResizeMaskFliexbleWidth;

如果您需要自动布局版本,请告诉我。

于 2013-09-23T13:44:49.057 回答