获取高度值的方法:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
// 获取webView的高度
CGFloat webViewHeight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
CGFloat webViewHeight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];
CGFloat webViewHeight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.clientHeight"] floatValue];
}

  遇到的问题:在这里采用的是加载HTML代码,由于前端H5中格式问题,网页中图片过大,显示不完整,于是自己做了以下处理,使图片适配屏幕大小

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
// 1、只对本地html资源的图片有效果
NSString *js = @"function imgAutoFit() { \
var imgs = document.getElementsByTagName('img'); \
for (var i = 0; i < imgs.length; ++i) {\
var img = imgs[i]; \
img.style.maxWidth = %f; \
} \
}";
js = [NSString stringWithFormat:js, [UIScreen mainScreen].bounds.size.width - ];
[self.myWebView stringByEvaluatingJavaScriptFromString:js];
[self.myWebView stringByEvaluatingJavaScriptFromString:@"imgAutoFit()"]; // 获取webView的高度
CGFloat webViewHeight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
NSLog(@"%.f", webViewHeight);
}

  但是这样做的话,获取的网页高度还是以前一样的内容高度,但图片改变了大小,导致网页下方留出了多余的空白。

  于是再次进行了修改,将获取到的HTML代码拼接一个格式后,再来请求HTML网页,

    /*- 在加载网页时添加代码 -*/
// 手动改变图片适配问题,拼接html代码后,再加载html代码
NSString *myStr = [NSString stringWithFormat:@"<head><style>img{max- width:%f !important;}</style></head>", [UIScreen mainScreen].bounds.size.width - ];
NSString *str = [NSString stringWithFormat:@"%@%@",myStr, html5代码];
[self.myWebView loadHTMLString:str baseURL:nil];
/*- 在加载网页时添加代码 -*/ - (void)webViewDidFinishLoad:(UIWebView *)webView
{
// 获取webView的高度
CGFloat webViewHeight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
  NSLog(@"%.f",webViewHeight);
}

  这样就完美适配屏幕大小了!

iOS项目之获取WebView的高度的更多相关文章

  1. iOS 【终极方案】精准获取webView内容高度,自适应高度

    前言:是这样的,刚写完上一篇文章还没缓过神来,上一篇文章我还提到了,想和大家聊聊原生+H5如何无缝连接的故事.结果我朋友就给我发了两篇他的作品.他的做法也都有独到之处.好的文章都是这样,让你每次看都能 ...

  2. iOS【野路子】精准获取webView内容高度,自适应高度

    关于WebView内容高度的获取,相信很多人都踩过坑,无法获取到准确高度,导致页面布局出现差错,搜到的资料很多但都无法解决问题,以下是个人经验总结: 项目需求实现H5文章&原生评论效果,文章是 ...

  3. iOS-tableview【终极方案】精准获取webView内容高度,自适应高度

    关于WebView内容高度的获取,相信很多人都踩过坑,无法获取到准确高度,导致页面布局出现差错,搜到的资料很多但都无法解决问题,以下是个人经验总结: 项目需求实现H5文章&原生评论效果,文章是 ...

  4. 【iOS】swift-通过JS获取webView的高度

     let webHeightStr = webView.stringByEvaluatingJavaScriptFromString("document.body.scrollHeight& ...

  5. 在vue项目中 获取容器的高度

    左右并列两个容器,左边的不固定高度,右侧的高度要和左边的高度一致, var offsetHeight = $('.left).outerHeight(); $('.right').outerHeigh ...

  6. iOS项目中获取验证码倒计时及闪烁问题解决方案

    -(void)startTime{ __block int timeout= 59; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queu ...

  7. 【iOS】swift-获取webView的高度

        func webViewDidFinishLoad(webView: UIWebView) {         let webHeightStr = webView.stringByEvalu ...

  8. iOS项目之WKWebView替换UIWebView相关

    在网上已经有了许多关于UIWebView替换为WKWebView的文章,所以在这里就不在多说替换的细节了,不会的可以在网上搜搜. 下面是我在项目中遇到的问题: 问题一:在UIWebView中,网页显示 ...

  9. iOS UIWebView 获取内容实际高度,关闭滚动效果

    本文转载至 http://my.oschina.net/Khiyuan/blog/341535   iOS UIWebView 获取内容实际高度,关闭滚动效果 近期做东西,将 UIWebView 嵌套 ...

随机推荐

  1. box-shadow比较美观的阴影

    无奈每次调阴影都特别丑,这次我把它记下来,下次不调了 box-shadow: 0 5px 15px -5px rgba(0,0,0,.5);

  2. 转:Maven <resource>标签

    maven资源文件的相关配置   构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件. src/main/java和src/test/java  这 ...

  3. 使用ReentrantLock和Condition来代替内置锁和wait(),notify(),notifyAll()

    使用ReentrantLock可以替代内置锁,当使用内置锁的时候,我们可以使用wait() nitify()和notifyAll()来控制线程之间的协作,那么,当我们使用ReentrantLock的时 ...

  4. iOS WKWebView (NSURLProtocol)拦截js、css,图片资源

    项目地址github:<a href="https://github.com/LiuShuoyu/HybirdWKWebVIew/">HybirdWKWebVIew&l ...

  5. Nodejs exec和spawn的区别

    spawn child_process.spaen会返回一个带有stdout和stderr流的对象.你可以通过stdout流来读取子进程返回给Node.js的数据. stdout拥有’data’,’e ...

  6. lxml xpath 爬取并正常显示中文内容

    在使用python爬虫提取中文网页的内容,为了能正确显示中文的内容,在转为字符串时一定要声明编码为utf-8,否则无法正常显示中文,而是显示原编码的字符,并没有正确转换.比如下面这个简单的爬取百度页面 ...

  7. 安装 docker

    Image 仓库 配置国内镜像源 windows下载 Docker Desktop centos 安装 Docker yum install docker -y service docker star ...

  8. 面向对象编程之Java多态

    我相信从学习计算机面向对象编程起就很多人背下了继承.封装.多态三个特性,可是多态并不是那么好理解的.通常做几道题,背下几次多态的动态绑定规律,可是依旧在一段时间后忘记了多态的存在,为什么要多态,这个程 ...

  9. html 中a标签的问题(无反应,跳转,调用方法)

    让超链接点击后不跳转,可以用href = "#",但是这个#就会锚点到页面最上边     点击链接后不跳转可以设置成     1.<a href="javascri ...

  10. jar命令打jar包

    jar -cvfM0 cloudwarehouse-enter.jar ./BOOT-INF ./META-INF ./org jar -cvfM0 xxl-job-admin.war ./BOOT- ...