2010-11-05 48 views
5

我想透过UIWebView透明UIToolBar,以便用户获得更广泛的视角和概览。UIWebView上的透明UIToolBar

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

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

回答

2

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

for (id view in [self.webView subviews]){ 
    if ([view respondsToSelector:@selector(setContentInset:)]){ 
     [(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)]; 
    } 
} 
0

这听起来像你不希望UIToolbar重叠你的UIWebView。相反,您要设置其框架,以便UIWebView只扩展到UIToolbar开始的位置。

如果以编程方式设置这两个视图,只需将UIWebView框架的高度设置为其父框架的大小即UIToolbar框架的高度即可。如果你在InterfaceBuilder中这样做,只需拖动UIWebView的底部边缘来调整它的大小,使其停止在UIToolbar开始的位置,或者在检查器中修改其框架。

+0

透明工具栏的全部要点是展示它下面的东西。所以不,我不希望UIWebView停在toolBar上方。 – Emil 2010-11-05 22:55:01

+0

对不起,我想我不明白你在做什么。 – Ryan 2010-11-05 22:58:47

+0

排序的照片应用程序,只是我希望“图像”的底部边缘能够滚动工具栏的边缘! :) – Emil 2010-11-05 23:07:54

3

我固定它通过在UIWebView中的UIScrollView的-子视图设置的插图:

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

看起来和伟大工程!

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