//I am loading **HTML file** in **UIWebview** which is located on **tableviewcell**.
我想根据 HTML 文件高度修复单元格的高度。
注意:每个单元格的加载 HTML 文件都会不同。(每个 HTML 文件的高度不是恒定的)
//I am loading **HTML file** in **UIWebview** which is located on **tableviewcell**.
我想根据 HTML 文件高度修复单元格的高度。
注意:每个单元格的加载 HTML 文件都会不同。(每个 HTML 文件的高度不是恒定的)
UIWebView
要获取对象的高度,首先需要加载它们。然后在您的委托方法中,UIWebView
您可以根据下面给出的 html 内容获取高度。
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@"%f",myWebView.scrollView.contentSize.height);
}
UIWebView
你也可以像这样通过JS插入获得高度
[myWebView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"];
在webViewDidFinishLoad
方法中,您必须根据 webview object tag 存储高度。
之后加载您的表格并在下面的方法中相应地给出高度。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
如果我理解正确..
在这里,您为 cell.textLabel 设置 cell.textLabel.lineBreakMode 和行数。(0 - 无穷大)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier] autorelease];
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 0;
}
cell.textLabel.text = [news objectAtIndex:indexPath.row];
return cell;
}
在这里您需要计算单元格的高度。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellText = [news objectAtIndex:indexPath.row];
UIFont *cellFont = [UIFont fontWithName:@"Helvetica-Bold" size:20.0f];
CGSize constraintSize = CGSizeMake(320.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont
constrainedToSize:constraintSize
lineBreakMode:UILineBreakModeWordWrap];
return labelSize.height + 20.0f;
}
实现 UITableViewDelegate 方法 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *text = [self getItemForKey:kSummary];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
//You will need to define kDefaultCellFont
CGSize labelSize = [text sizeWithFont:kDefaultCellFont
constrainedToSize:constraintSize
lineBreakMode:UILineBreakModeWordWrap];
return labelSize.height + ANY_OTHER_HEIGHT;
}
如果你想要更多检查链接