【问题标题】:iOS UIWebView Size based on windowiOS UIWebView 大小基于窗口
【发布时间】:2013-09-28 07:27:27
【问题描述】:

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

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

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

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

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

谢谢

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

//编辑2

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

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

【问题讨论】:

  • 状态栏似乎与那个空白区域重叠。
  • 请查看此链接,它可能会对您有所帮助ranga-iphone-developer.blogspot.com/2012/11/…
  • @Ganapathy 它没有 - 我添加了故事板的图像
  • 这允许创建一个 web 视图 - 我需要能够做的另一件事是拥有多个 web 视图并将它们存储在一个数组中。然而,这方面的一些选项看起来确实很有用,所以我会试一试。谢谢
  • 那么,基本上你想要导航栏?

标签: iphone ios objective-c ipad uiwebview


【解决方案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);

【讨论】:

  • 此方法不考虑标签栏和状态栏
  • 有没有办法与此类似但不重叠那些条?
  • @ChrisByatt :您似乎正在使用快照中的自定义标签栏,所以我不知道您可能需要检查 4 英寸视网膜和 3.5 英寸屏幕的状况并相应地设置 web 视图的框架.
  • 我只是使用了苹果在标签应用程序中提供的标签栏控制器。看起来不一样,因为截图是 iOS 7
  • 好的,刚刚修复了 UIWebView 的框架,屏幕条件为 3.5 或 4 英寸可能会解决您的问题。
【解决方案2】:

好的,self.view 将在viewDidLoadviewWillAppear 之间调整大小。 所以,如果你想调整大小,你应该在viewWillApear进行。

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

自动调整
将您的webView 添加到self.view 作为子视图,将框架设置为self.view.boudse,然后

webView.autoResizeMask = UIViewAutoResizeMaskFliexbleHeight|UIViewAutoResizeMaskFliexbleWidth;

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

【讨论】:

  • 这适用于标签栏,但仍会越过状态栏
  • 在iOS7中UIViewController的视图在状态栏下被拉伸,热修复可以将你的viewController嵌入UINavigationController并将显示导航栏设置为NO。
  • 使用 webView.scalePagesToFit = YES;为我解决了这个问题:) 感谢您的帮助。请参阅下面的答案
【解决方案3】:

根据其他人的回答,这对我有用

-(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];
}

【讨论】:

    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 2013-04-13
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    相关资源
    最近更新 更多