UITabBarController导致UIWebView底部被切断

3
我有一个UITabBarController,它在我的应用程序底部,在一个视图中我想显示许多组件,我有一个UIWebView并且在底部我有我的UITabBarController。我的问题是,我的UITabBarController通过我的.xib将所有剩余的空间都占据了,因此我的UIWebView在底部被截断了。
如何通过编程解决这个问题,使我的WebView知道什么时候必须停止显示(就在我的UITabBarController的顶部之前)?请提供IOS6/7的解决方案。
非常感谢!
2个回答

5
您可以将底部边缘插图设置为webView.scrollView。
例如:
self.webView.scrollView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, *tabbar_height*, 0.0f);

非常感谢!!! tabBar 的高度是一个固定值,适用于所有 IOS 版本和所有设备吗? - Pierre_S
只需使用 self.tabbarController.tabBar.bounds.size.height 设置底部插图。这将确保在所有平台上正确设置插图。 - Krivoblotsky

2

Kirvoblotsky提出的解决方法适用于iOS 7.0,但不适用于iOS 7.1。在iOS 7.1上,您的Web视图将在底部选项卡栏顶部有一个额外的插入。

在包含Web视图的视图控制器中,您需要添加以下修改:

-(void) viewDidLoad {
    ...
    // put this IF statemenet in the end
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
        [self setEdgesForExtendedLayout:UIRectEdgeNone];
    }
}

如果不这样做,那么在设置contentInset时就需要使用if语句:

if (*iOS version == 7.1*) {
    self.webView.scrollView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, 0.f, 0.0f);
} else if (*iOS version == 7.0) {
    self.webView.scrollView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, *tabbar_height*, 0.0f);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接