UIWebView 上的透明 UIToolBar
Posted
技术标签:
【中文标题】UIWebView 上的透明 UIToolBar【英文标题】:Transparent UIToolBar over UIWebView 【发布时间】:2010-11-05 22:27:41 【问题描述】:我希望有一个透明的UIToolBar
而不是UIWebView
,以便用户获得更广阔的视野和概览。
但是,当我这样做时,您看不到页面底部。我曾考虑在底部设置一个偏移量,但这是不可信的,因为缩放级别可能会有所不同(并且每个像素的价值都会降低)。
如何使webView
滚动并停在UIToolBar
的顶部边缘?
【问题讨论】:
【参考方案1】:您必须设置 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];
【讨论】:
【参考方案2】:我通过在 UIWebView 的 UIScrollView 子视图中设置一个插图来修复它:
for (id view in [webView subviews])
if ([view isMemberOfClass:[UIScrollView class]])
[(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)];
外观和效果都很棒!
【讨论】:
【参考方案3】:我尝试了 Emils 解决方案,但它不适用于 ios7,因为它继承自 UIWebViewScrollView
。因此,将他的代码修改为以下内容:
for (id view in [self.webView subviews])
if ([view respondsToSelector:@selector(setContentInset:)])
[(UIScrollView *)view setContentInset:UIEdgeInsetsMake(0, 0, 44, 0)];
【讨论】:
【参考方案4】:听起来您不希望 UIToolbar 与您的 UIWebView 重叠。相反,您希望设置它们的框架,以便 UIWebView 仅扩展到 UIToolbar 开始的位置。
如果您以编程方式设置这两个视图,只需将 UIWebView 框架的高度设置为其父级边界的大小 - UIToolbar 框架的高度。如果您在 InterfaceBuilder 中执行此操作,只需拖动 UIWebView 的底部边缘以调整其大小,使其停止在 UIToolbar 开始的位置,或在检查器中修改其框架。
【讨论】:
透明工具栏的全部意义在于显示它下面的东西。所以不,我不希望 UIWebView 停在工具栏的正上方。 对不起,我想我不明白你在做什么。 照片应用程序的排序,只是我希望“图像”的底部边缘能够滚动到工具栏的边缘! :) 感谢您的努力!以上是关于UIWebView 上的透明 UIToolBar的主要内容,如果未能解决你的问题,请参考以下文章