5

我希望对 a 透明UIToolBarUIWebView以便用户获得更广泛的视角和概览。

但是,当我这样做时,您看不到页面底部。我考虑过在底部设置一个偏移量,但这是不可信的,因为缩放级别可能会有所不同(并且每个像素的价值都会降低)。

如何使webView滚动并停止在顶部边缘UIToolBar

4

4 回答 4

4

您必须设置 contentInset 和 scrollIndicatorInsets。如果您不设置 scrollIndicatorInsets,滚动指示器将位于您的 UIToolbar 下方,这看起来不正确。

float toolbarHeight = toolbar.frame.size.height;

UIEdgeInsets insets = webView.scrollView.contentInset;
insets.bottom = toolbarHeight;
[webView.scrollView setContentInset:insets];

UIEdgeInsets indicatorInsets = webView.scrollView.scrollIndicatorInsets;
indicatorInsets.bottom = toolbarHeight;
[webView.scrollView setScrollIndicatorInsets:indicatorInsets];
于 2014-06-03T10:38:42.327 回答
3

我通过在 UIWebView 的 UIScrollView 子视图中设置一个插图来修复它:

for (id view in [webView subviews]){
    if ([view isMemberOfClass:[UIScrollView class]]){
        [(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)];
    }
}

看起来和工作都很棒!

于 2010-11-05T23:38:58.230 回答
2

我尝试了 Emils 解决方案,但它不适用于 iOS7,因为它继承自UIWebViewScrollView. 因此,将他的代码修改为以下内容:

for (id view in [self.webView subviews]){
    if ([view respondsToSelector:@selector(setContentInset:)]){
        [(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)];
    }
}
于 2014-05-30T23:26:57.240 回答
0

听起来您不希望 UIToolbar 与您的 UIWebView 重叠。相反,您希望设置它们的框架,以便 UIWebView 仅扩展到 UIToolbar 开始的位置。

如果您以编程方式设置这两个视图,只需将 UIWebView 框架的高度设置为其父级边界的大小 - UIToolbar 框架的高度。如果您在 InterfaceBuilder 中执行此操作,只需拖动 UIWebView 的底部边缘以调整其大小,使其停止在 UIToolbar 开始的位置,或在检查器中修改其框架。

于 2010-11-05T22:51:37.470 回答