在开发中 或许有些需求 需要在某个cell上添加webview。 下面我就来讲下cell上如何添加webview
这个就直接在tableview的代理中写了
#pragma mark - TableViewDelegate & TableViewDatasource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *identifier = @"cell";
if (indexPath.row == 1){
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (!cell){
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
[cell.contentView addSubview:_webView];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
}
return cell;
}else{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (!cell){
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
cell.textLabel.text = [NSString stringWithFormat:@"index:%ld",(long)indexPath.row];
return cell;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
{
if(indexPath.row == 1){
//通过webview代理获取到内容高度后,将内容高度设置为cell的高
return _webView.frame.size.height;
}else{
return 70;
}
}
#pragma mark - UIWebView Delegate
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
//获取到webview的高度
CGFloat height = [[self.webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];
self.webView.frame = CGRectMake(self.webView.frame.origin.x,self.webView.frame.origin.y, kScreenWidth, height);
[self.tableView reloadData];
}
就这样,整个webview就很容易加载到cell上了。