有时候我们webView加载的网页有自己的导航栏,这样就和系统的导航栏重复了如下图:
二个导航栏
有二种方法解决:
1.隐藏系统的导航栏,和就是做交互来实现网页里返回事件(不推荐)。
2.隐藏网页导航(推荐)。
其实我们只要我们在webView的加载结束代理里隐藏掉html里的header标签就可以隐藏网页的导航栏。
代码如下:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
// 1.获取页面标题
NSString *string =@"document.title";
//获取当前页面的title 设置导航栏标题
NSString * title = [webViewstringByEvaluatingJavaScriptFromString:@"document.title"];
self.title = title;
[webView stringByEvaluatingJavaScriptFromString:string];
// 2.去掉页面标题
NSMutableString *str = [NSMutableStringstring];
// 3.根据标签类型获取指定标签的元素
[str appendString:@"var header = document.getElementsByTagName(\"header\")[0];”];
//移除头部的导航栏
[str appendString:@"header.parentNode.removeChild(header);"];
[webView stringByEvaluatingJavaScriptFromString:str];
[selfperformSelector:@selector(hidenaction)withObject:selfafterDelay:0.1];
}
- (void)hidenaction{
//开始加载时隐藏webview 加载完后显示,原因是 因为我们要去掉头标签,,去掉的方法是在网页加载完毕进行的,,添加一个延时现实的方法 可以隐藏掉网页先显示头标签又被移除的过程。使其看起来更自然一些
self.webView.hidden =NO;
}
网友评论