Pregunta

I have a UITabBarController at the bottom of my application and for one view I would like to display many component and I have a UIWebView and at the bottom I have my UITabBarController. My issue is that my UIWebView is cut off at the bottom by my UITabBarController because in my .xib my UIWebView take all the remaining space.

How can I solve that programmatically that my WebView knows when she must stop to display (just before the top of my UITabBarController) ? I would like a solution for IOS6/7 please.

Thank you very much!

¿Fue útil?

Solución

You can set bottom edge inset to your webView.scrollView.

Like:

self.webView.scrollView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, *tabbar_height*, 0.0f);

Otros consejos

The solution that Kirvoblotsky suggested will work for iOS 7.0 but not on iOS 7.1. On iOS7.1 your web view will have an additional inset on top of bottom tab bar.

In the view controller that contains your web view you need to add this modification:

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

If you don't do it like this then you need to do if statement when setting contentInset:

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);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top