1、防止死循環問題html
方法一:使用動畫塊 [self.myTableView beginUpdates];[self.myTableView endUpdates];
在下面的代理方法獲取內容的高度,而後刷新web
-(void)webViewDidFinishLoad:(UIWebView *)webView動畫
{lua
webHeight = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue];//次高度就是cell的高度
CGSize actualSize = [webView sizeThatFits:CGSizeZero];
CGRect newFrame = webView.frame;
newFrame.size.height = actualSize.height;
webView.frame = newFrame;url
[self.myTableView beginUpdates];
[self.myTableView endUpdates];代理
}htm
方法二:將webview建立爲全局的,在數據請求以後再加載數據 : [_webView loadHTMLString:content baseURL:baseUrl];blog
tableview代理方法中:-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath圖片
{ip
NSString *cellIdentifier = @"webCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
if (!_webView){
_webView = [[UIWebView alloc]initWithFrame:CGRectMake(10, 10.0, MainScreen_width-20.0, 1)];
_webView.delegate = self;
_webView.scrollView.scrollEnabled = NO;
[_webView sizeToFit];
[cell addSubview:_webView];
}
}
cell.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
在webview的代理方法中能夠直接使用tableview的reloadData方法
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
webHeight = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] floatValue];//次高度就是cell的高度
CGSize actualSize = [webView sizeThatFits:CGSizeZero];
CGRect newFrame = webView.frame;
newFrame.size.height = actualSize.height;
webView.frame = newFrame;
[self.myTableView reloadData];
}
2、js交互問題
向h5頁面注入js的方法: [webView stringByEvaluatingJavaScriptFromString:jsstr];//注入js方法 能夠經過次方法向h5頁面注入js方法,來操做h5頁面
例如:-(void)webViewDidFinishLoad:(UIWebView *)webView
{
//這裏是js,主要目的實現對url的獲取
static NSString *const jsGetImages =
@"function getImages(){\ var objs = document.getElementsByTagName(\"img\");\
var imgScr = '';\
for(var i=0;i<objs.length;i++){\
var _src = '';\
_src = objs[i].getAttribute('data-echo');\
if( _src == null)\
_src = objs[i].src;\
if(i != (objs.length-1))\
imgScr = imgScr + _src + '+';\
};\
return imgScr;\
};";
[webView stringByEvaluatingJavaScriptFromString:jsGetImages];//注入js方法
NSString *urlResurlt = [webView stringByEvaluatingJavaScriptFromString:@"getImages()"];//調用js方法
}3、html圖片懶加載,適配webview的高度,參考:http://www.cnblogs.com/wangyingblock/articles/5718916.html