在测试iOS应用程序中,我添加了一个显示网页的UIWebView。我想要的是不显示此网页的页眉和页脚。页眉和页脚让我们说几乎100像素。有什么办法可以在UIWebView中隐藏这部分吗?
我已经尝试过的是我在我的StoryBoard中移动了UIWebView,使100像素位于导航栏后面。这使得UIWebView的内容看起来正是我想要的,但是如果用户滚动并按住它以及它弹跳时用户仍然可以看到它。所以这不是一个好的解决方案。我做的第二件事是禁用反弹效果,但这使整个事情非常固定,这也不是一个好的解决方案。
如何在UIWebView的顶部和底部隐藏内容的特定部分?谢谢!
答案 0 :(得分:1)
您可以通过执行通过CSS隐藏DOM元素的JavaScript来隐藏页眉/页脚,或者在加载文档后删除它们(在委托方法- (void)webViewDidFinishLoad:(UIWebView *)webView
中)。
说删除标题元素:
NSString *js = @"var headerElement = document.getElementsByTagName('header')[0]; if(e){ e.remove(); }";
[webView stringByEvaluatingJavaScriptFromString: js];
或者插入用于隐藏页眉/页脚的CSS:
NSString *js = @"var styleTag = document.createElement('style'); styleTag.innerText = "header, footer {display: none;}"; document.body.appendChild(styleTag);";
[webView stringByEvaluatingJavaScriptFromString: js];
但是,在解析网页并向用户显示之后,上述两种方法会生效,因此用户可能会注意到页脚和标题会显示一小段时间。
如果你真的需要阻止用户看到页眉/页脚的flash,你应该考虑在高级加载html内容并将CSS插入到内容中,然后通过调用UIWebView方法– loadHTMLString:baseURL:
来显示网页。
答案 1 :(得分:0)
使用Java Script可以实现它。限制webview的滚动内容偏移量,使其在某个时刻到达时不会上升。
或者这对您也有帮助: iOS : detect UIWebView reaching the top or bottom