2010-11-05 47 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];