我有一个使用UIWebView的应用程序。目前我使用故事板创建Web视图,但我想以编程方式创建它。
这需要适用于所有设备和iOS 5 - 7。
目前(在iOS 6中使用故事板)它看起来像这样:
但是在iOS 7中你没有得到顶部的白条:
如何以编程方式创建UIWebView,以便在所有设备上填充可用的窗口空间(即不会覆盖标签栏或状态栏)?
由于
// EDIT 这是我的UIWebView的故事板
//编辑2
根据建议我这样做但它与状态栏和标签栏重叠。有没有办法考虑它们?
float width = [UIScreen mainScreen].bounds.size.width;
float height = [UIScreen mainScreen].bounds.size.height;
答案 0 :(得分:1)
请查看此链接,它可能会帮助您
http://ranga-iphone-developer.blogspot.com/2012/11/how-to-create-uiwebview-programmatically.html
答案 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
将在viewDidLoad
和viewWillAppear
之间的某个位置调整大小。
因此,如果您想调整大小,则应在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];
}