// I am loading **HTML file** in **UIWebview** which is located on **tableviewcell**.
我想根据HTML文件高度修复单元格的高度。
注意:加载HTML文件对于每个单元格都不同。(每个HTML文件的高度不是常量)
答案 0 :(得分:4)
要获得UIWebView
对象的高度,首先需要加载。然后在UIWebView
的委托方法中,您可以根据html内容获得高度,如下所示。
- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@"%f",myWebView.scrollView.contentSize.height);
}
你也可以通过JS插件获得UIWebView
的高度
[myWebView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"];
在webViewDidFinishLoad
方法中,您必须根据webview对象标记存储高度。
之后加载您的表格并在下面的方法相应地给出高度。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
答案 1 :(得分:2)
如果我理解正确的话。
在这里为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;
}
答案 2 :(得分:1)
实现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;
}
如果您想要更多,请查看Link