美文网首页
webView 加载HTML,动态获取高度和图片自适应

webView 加载HTML,动态获取高度和图片自适应

作者: 心在前方 | 来源:发表于2017-05-28 10:38 被阅读0次

    [self.wv loadHTMLString:@“HTMLStr” baseURL:nil];

    使用上面的API进行HTML页面加载之后,实现webView的代理,在webViewDidFinishLoad中调用JS方法。

    for (int i = 0; i < 需要遍历的图片张数; i++) {

    NSString *str = [NSString stringWithFormat:@"document.getElementsByTagName('img')[%d].style.maxWidth = '100%%'",i];

    [webView stringByEvaluatingJavaScriptFromString:str];

    NSString *str1 = [NSString stringWithFormat:@"document.getElementsByTagName('img')[%d].style.height= 'auto'",i];

    [webView stringByEvaluatingJavaScriptFromString:str1];

    }

    通过上面的代码可以实现图片的宽高等比缩放并且适应屏幕大小。在一般的需求中,都会动态的调整webView的高度来实现UI显示。

    CGFloat webViewHeight= [[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('div')[0].offsetHeight"] floatValue];

    这里获取到的高度就是网页显示的高度,当然也许细心的朋友已经发现了,我是通过div去获取的高度,但是可能在你们实际情况中后台返回的HTML没有DIV,这里我提供一个解决办法就是在HTMLStr的前后手动拼接<div>和</div>。也许你们会觉得麻烦,但是呢通过div来获取高度我也是经过测试之后才决定使用的。

    如果在我们的HTMLStr中没有div,那么我们获取到的是整个body的高度,那么在我们的HTMLStr显示的内容高度很小的时候,并不会获取到准确的高度,webView会返回一个境界值x,当实际高度小于x时就只会返回x这就造成了很大的麻烦,但是使用div返回的一定是div的内容视图的高度,可以做到非常精确。不信可测!

    相关文章

      网友评论

          本文标题:webView 加载HTML,动态获取高度和图片自适应

          本文链接:https://www.haomeiwen.com/subject/ohocfxtx.html