我想在UIToolBar
上拥有透明UIWebView
,以便用户获得更广泛的视角和概述。
然而,当我这样做时,你看不到页面的底部。我想在底部设置一个偏移量,但这不可信,因为缩放级别可能会有所不同(并且每个像素的价值会更低)。
如何将webView
滚动并停在UIToolBar
的上边缘?
答案 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];
答案 1 :(得分:3)
我通过在UIWebView的UIScrollView子视图中设置插入来修复它:
for (id view in [webView subviews]){
if ([view isMemberOfClass:[UIScrollView class]]){
[(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)];
}
}
看起来很棒!
答案 2 :(得分:2)
我尝试了Emils解决方案,但它不适用于iOS7,因为它继承自UIWebViewScrollView
。因此,将他的代码改编为以下内容:
for (id view in [self.webView subviews]){
if ([view respondsToSelector:@selector(setContentInset:)]){
[(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)];
}
}
答案 3 :(得分:0)
听起来你不希望UIToolbar与你的UIWebView重叠。相反,您希望设置其框架,以便UIWebView仅扩展到UIToolbar开始的位置。
如果您以编程方式设置这两个视图,只需将UIWebView框架的高度设置为其父级边界的大小 - UIToolbar框架的高度。如果您在InterfaceBuilder中执行此操作,只需拖动UIWebView的下边缘以调整其大小,使其停止在UIToolbar开始的位置,或在检查器中修改其框架。