美文网首页webview
UITableViewCell 中嵌套webView动态计算高度

UITableViewCell 中嵌套webView动态计算高度

作者: Farmers | 来源:发表于2016-05-31 17:02 被阅读859次

最近忙着个项目,要在UItableViewCell 中加上一个webView 并且webView 需要全部展开显示,在网上也找了不少的解决方案 比如这个简友的方案 :

1. http://www.jianshu.com/p/e199496a8b8a 。

2.还有类似的在  UItableViewCell 中加载webView 然后 在UIwebView的代理方法中

- (void)webViewDidFinishLoad:(UIWebView*)webView  

//通过获取到webview的高度

CGFloatheight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"]floatValue];

然后发送通知 刷新tableview,但是这里需要注意:避免出现 循环调用 

3. 我的最终实现方案,

直接在  包含 UItabelview  的UIviewController  中 添加一个 (不做显示的 )UIWebView 然后在通过这个UIwebView 加载网页(注意:这个webView 是不显示的)此时 通过代理方法:

- (void)webViewDidFinishLoad:(UIWebView*)webView

//通过获取到webview的高度

CGFloatheight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"]floatValue];

3.1  由于 这边提供的 Html5 界面未做图片适配 这里加了适配的javaScript 语句

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 = [NSStringstringWithFormat:js, [UIScreenmainScreen].bounds.size.width-20];

[self.myWebViewstringByEvaluatingJavaScriptFromString:js];

[self.myWebViewstringByEvaluatingJavaScriptFromString:@"imgAutoFit()"];

3.2 这里需要注意下 必须等待当前 VC 中的WebView 加载完毕 然后 再在UItableviewCell 中加载 URL  否则 会报 code -999 的错误(原因是 webView 在进行加载时,当前界面没有加载完毕,然后就又请求下一个URL   导致当前正在加载的 URL 被 cancel 掉产生的)

L

相关文章

网友评论

    本文标题:UITableViewCell 中嵌套webView动态计算高度

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