[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的内容视图的高度,可以做到非常精确。不信可测!
网友评论