最近忙著個項目,要在UItableViewCell 中加上一個webView 并且webView 需要全部展開顯示,在網(wǎng)上也找了不少的解決方案 比如這個簡友的方案 :
1. http://www.itdecent.cn/p/e199496a8b8a 。
2.還有類似的在? UItableViewCell 中加載webView 然后 在UIwebView的代理方法中
- (void)webViewDidFinishLoad:(UIWebView*)webView ?
//通過獲取到webview的高度
CGFloatheight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"]floatValue];
然后發(fā)送通知 刷新tableview,但是這里需要注意:避免出現(xiàn) 循環(huán)調(diào)用?
3. 我的最終實現(xiàn)方案,
直接在 ?包含 UItabelview ?的UIviewController ?中 添加一個 (不做顯示的 )UIWebView 然后在通過這個UIwebView 加載網(wǎng)頁(注意:這個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 這里需要注意下 必須等待當(dāng)前 VC 中的WebView 加載完畢 然后 再在UItableviewCell 中加載 URL ?否則 會報 code -999 的錯誤(原因是 webView 在進(jìn)行加載時,當(dāng)前界面沒有加載完畢,然后就又請求下一個URL ? 導(dǎo)致當(dāng)前正在加載的 URL 被 cancel 掉產(chǎn)生的)
L